可选类型 'Date?' 的值未展开;你是不是想用'!'要么 '?'?在 Swift 4 XCode 9
Value of optional type 'Date?' not unwrapped; did you mean to use '!' or '?'? In Swift 4 XCode 9
如何展开实体的日期
在哪里
@IBOutlet weak var dob: UIDatePicker!
var selectedEntity: TestEntity!
我有以下方法没人用过
self.dob.date = self.selectedEntity?.dob!
// 错误编译时间
self.dob.date = self.selectedEntity?.dob as! Date
// Waring 即将到来,如果 date 为 nil 则运行时崩溃
安全解包 selectedEntity
。
if let selectedEntity = self.selectedEntity {
self.name.text = selectedEntity.name
self.dob.date = selectedEntity.date
}
每当 Xcode 建议使用 !
时,不要这样做。这是 Xcode.
最糟糕的特征
self.selectedEntity?
是可选的。它的所有值也是可选的。有关详细信息,请参阅 Swift 文档中的 Optional Chaining。在将它们用作非可选对象之前,您需要打开可选对象。这就是您在此处 self.selectedEntity?.dob!
使用 !
符号时所做的事情。该力解开可选的包装,如果它为零,您的应用程序将崩溃。您的 self.dob.date
对象不是可选的,因此您必须在使用它之前打开可选的 self.selectedEntity?.dob
对象。你可以安全地用这样的东西打开你的 self.selectedEntity
对象。
if let selectedEntity = selectedEntity {
self.dob.date = selectedEntity.dob
}
如何展开实体的日期
@IBOutlet weak var dob: UIDatePicker!
var selectedEntity: TestEntity!
我有以下方法没人用过
self.dob.date = self.selectedEntity?.dob!
// 错误编译时间
self.dob.date = self.selectedEntity?.dob as! Date
// Waring 即将到来,如果 date 为 nil 则运行时崩溃
安全解包 selectedEntity
。
if let selectedEntity = self.selectedEntity {
self.name.text = selectedEntity.name
self.dob.date = selectedEntity.date
}
每当 Xcode 建议使用 !
时,不要这样做。这是 Xcode.
self.selectedEntity?
是可选的。它的所有值也是可选的。有关详细信息,请参阅 Swift 文档中的 Optional Chaining。在将它们用作非可选对象之前,您需要打开可选对象。这就是您在此处 self.selectedEntity?.dob!
使用 !
符号时所做的事情。该力解开可选的包装,如果它为零,您的应用程序将崩溃。您的 self.dob.date
对象不是可选的,因此您必须在使用它之前打开可选的 self.selectedEntity?.dob
对象。你可以安全地用这样的东西打开你的 self.selectedEntity
对象。
if let selectedEntity = selectedEntity {
self.dob.date = selectedEntity.dob
}