问题
Apple's docs指定:
首次初始化属性时,不会调用
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
}
}
我创建了doStuff
方法,以使处理调用更加简洁,但我宁愿只处理didSet
函数中的属性。有没有办法在初始化过程中强制调用它?
更新
我决定只删除我的类的方便初始化器,并强制您在初始化后设置该属性。这让我知道didSet
总是会被调用。我还没有决定总体上这样做是否更好,但它很适合我的情况。
https://stackoverflow.com/questions/25230780
复制相似问题