Swift:初始化程序中的默认属性vs设置

时间:2015-02-08 04:15:48

标签: swift methods properties semantics

swift使用默认属性值而不是在初始化程序中设置它有什么缺点吗?

例如,

class Foo: UIViewController {
    let value = UIRefreshControl()
}

VS

class Bar: UIViewController {
    var value : UIRefreshControl!

    // or using init()
    override func viewDidLoad() {
        self.value = UIRefreshControl()
    }
}

默认属性值看起来更简洁和优雅,但我不会在代码示例中看到它们可以被使用。

1 个答案:

答案 0 :(得分:2)

唯一的缺点是每次创建对象的实例时都会设置默认属性值,即使随后在一个或多个初始值设定项中覆盖了属性。如果您只是分配默认数值,这可能不是问题,但是如果有一个构建成本昂贵的类,那么最终可能会完成两倍的工作。