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)
默认属性值看起来更简洁和优雅,但我没有看到它们在可以使用它们的代码示例中使用.
唯一的缺点是,每次创建对象实例时都会设置默认属性值,即使属性随后在一个或多个初始值设定项中被覆盖也是如此。如果您只是分配默认数值,这可能不是问题,但如果构建一个类的成本很高,您最终可能会做两倍的工作。