Apple的文档指出:
首次初始化属性时,不会调用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
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了方法doStuff
,使处理调用更简洁,但我宁愿只处理didSet
函数中的属性.有没有办法在初始化期间强制调用它?
我决定只为我的类删除便利的intializer并强制你在初始化后设置属性.这让我知道didSet
将永远被召唤.我还没有决定这总体上是否更好,但它很适合我的情况.