【发布时间】:2018-05-26 21:04:28
【问题描述】:
我想用 settar 和 getter 做下面的事情:
- 如果变量已在内存中,则返回它。
- 如果变量未加载,则加载并返回它。
你能写得简单吗?
// Error code
class Person : NSObject {
let personId : String
init(personId: String) {
self.personId = personId
}
public var name : String? {
// The key is not static. It is decided dynamically.
let keyName = "name-" + self.personId
get {
// If `name` exists, return it.
if name != nil { return name }
// Else load from `UserDefaults`
return UserDefaults.standard.string(forKey: keyName)
}
set {
name = UserDefaults.standard.set(newValue, forKey: keyName)
}
}
}
【问题讨论】:
标签: swift