【发布时间】:2017-01-20 08:17:03
【问题描述】:
在 Swift 3 中,我声明了一个始终返回非零正值的计算属性。该属性存储在 UserDefaults 中(这意味着应用程序第一次运行时它将为零):
var notificationInterval: TimeInterval {
get {
let interval = UserDefaults(suiteName: "groupName")?.double(forKey: "notificationInterval") as TimeInterval?
if interval == nil || interval! <= 0 {
notificationInterval = defaultInterval
return notificationInterval
} else {
return interval!
}
}
set {
UserDefaults(suiteName: "groupName")?.set(newValue, forKey: "notificationInterval")
}
}
在第 6 行和第 7 行:
notificationInterval = defaultInterval
return notificationInterval
我收到以下错误:
Attempting to access 'notificationInterval' within its own getter.
我理解这个错误,但我将如何以不同的方式设计它?我是故意“在自己的 getter 内”访问该属性的。
【问题讨论】:
-
避免显式检查
nil,然后强制解包。只需使用条件绑定。
标签: swift