我有一个 class
name Person 具有以下 setter 和 getter。
private var _signedDate:Date? = nil
var signedDate:Date {
get {
return _signedDate!
}
set (newDate) {
_signedDate = newDate
}
}
因为我有一个变量“signedDate”——我想做一个检查函数来让一个人知道他是否已经签名。因此,为此,我正在考虑编写这样的函数:
func hasSigned() -> Bool {
if signedDate {
return true
}
return false
}
现在编译器给我以下错误:
'Date' is not convertible to 'Bool'.
在 Obj-C 中,我们可以简单地检查特定变量的 nil
。但是对于 Swift 来说,这已经改变了。
我该怎么办?
对于 String
的情况,有一个方法:isEmpty()
。但是 Date
没有这样的方法。
最佳答案
在您的代码中,您不能总是在访问 signedDate
时强制解包 _signedDate
,因为如果 _signedDate
为 nil,它将引发运行时错误。
要么在 _signedDate
为 nil 时为 signedDate
设置默认值,要么将 signedDate
公开为 Date 类型?
.
可以使用以下方法检查日期是否为 nil:
func hasSigned() -> Bool {
if _signedDate == nil {
return false
}
return true
}
提供默认日期(如果有意义的话):
private var _signedDate:Date? = nil
var signedDate:Date {
get {
return _signedDate ?? Date() // or some valid date
}
set (newDate) {
_signedDate = newDate
}
}
关于swift - 如何检查日期是否为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43703525/