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

Ada*_*ree 5 methods properties semantics swift

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

例如,

class Foo: UIViewController {
    let value = UIRefreshControl()
}
Run Code Online (Sandbox Code Playgroud)

class Bar: UIViewController {
    var value : UIRefreshControl!

    // or using init()
    override func viewDidLoad() {
        self.value = UIRefreshControl()
    }
}
Run Code Online (Sandbox Code Playgroud)

默认属性值看起来更简洁和优雅,但我没有看到它们在可以使用它们的代码示例中使用.

Nat*_*ook 2

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