swift使用默认属性值而不是在初始化程序中设置它有什么缺点吗?
例如,
class Foo: UIViewController {
let value = UIRefreshControl()
}
VS
class Bar: UIViewController {
var value : UIRefreshControl!
// or using init()
override func viewDidLoad() {
self.value = UIRefreshControl()
}
}
默认属性值看起来更简洁和优雅,但我不会在代码示例中看到它们可以被使用。
答案 0 :(得分:2)
唯一的缺点是每次创建对象的实例时都会设置默认属性值,即使随后在一个或多个初始值设定项中覆盖了属性。如果您只是分配默认数值,这可能不是问题,但是如果有一个构建成本昂贵的类,那么最终可能会完成两倍的工作。