相关疑难解决方法(0)

是否可以在Swift初始化期间允许调用didSet?

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将永远被召唤.我还没有决定这总体上是否更好,但它很适合我的情况.

ios swift didset

199
推荐指数
4
解决办法
4万
查看次数

标签 统计

didset ×1

ios ×1

swift ×1