【发布时间】:2017-08-29 12:27:00
【问题描述】:
我如何使用 get 和 set() 闭包的延迟初始化。
这里是惰性初始化代码:
lazy var pi: Double = {
// Calculations...
return resultOfCalculation
}()
这里是 getter/setter 代码:
var pi: Double {
get {
//code to execute
return someValue
}
set(newValue) {
//code to execute
}
}
【问题讨论】:
-
你为什么需要那个?有什么具体原因吗?
-
1.那些不是闭包 2. getter 在被调用之前不会运行。你想完成什么?
-
您如何看待这项工作?使用
lazy属性,它在第一次访问时设置。使用 setter 时,它会在使用 setter 时立即设置。你想要一个默认的惰性 getter 和一个显式的 setter 吗?请添加更多详细信息。 -
你可能会检查: 属性观察者 超类属性的 willSet 和 didSet 观察者在子类初始化器中设置属性时调用,在调用超类初始化器之后。在类设置自己的属性时,在调用超类初始化程序之前,不会调用它们。
标签: ios swift getter-setter lazy-initialization