首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否可以允许在Swift中初始化期间调用didSet?

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

Stack Overflow用户
提问于 2014-08-11 00:38:57
回答 9查看 54.5K关注 0票数 250

问题

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总是会被调用。我还没有决定总体上这样做是否更好,但它很适合我的情况。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25230780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档