问题
苹果的文档指定:
首次初始化属性时不会调用 willSet 和 didSet 观察者。仅当属性的值在初始化上下文之外设置时才调用它们。
是否可以在初始化期间强制调用这些?
为什么?
假设我有这门课
class SomeClass {
var someProperty: AnyObject {
didSet {
doStuff()
}
}
init(someProperty: AnyObject) {
self.someProperty = someProperty
doStuff()
}
func doStuff() {
// do stuff now that someProperty is set
}
}
我创建了 method doStuff
,以使处理调用更简洁,但我宁愿只处理didSet
函数中的属性。有没有办法在初始化期间强制调用它?
更新
我决定只删除我的类的便利初始化程序,并强制您在初始化后设置属性。这让我知道didSet
将永远被调用。我还没有决定这是否总体上更好,但它很适合我的情况。