我有一个关于swift中变量初始化的问题。
我有两种方法来初始化一个变量(在Objective-C中作为类的“属性”)。
他们中哪一个是最正确的?
class Class {
var label: UILabel!
init() { ... label = UILabel() ... }
}或
class Class {
var label = UILabel()
init() { … }
}发布于 2016-11-07 16:10:56
实际上,你有5种初始化属性的方法。
没有正确的方法,方法取决于需要。
基本上声明像UILabel这样的对象总是-如果可能的话-作为常量(let)。
这5种方式是:
声明行中的
让label = UILabel(frame:...
init方法中,您不必将该属性声明为隐式取消包装可选。让标签: UILabel init() { ...label = UILabel(frame: ... ) ... }
前两种方法实际上是相同的。
viewDidLoad这样的方法中,在这种情况下,您必须将属性声明为(隐式取消包装) optional,也声明为varvar标签: UILabel!在viewDidLoad()上...}
let标签: UILabel ={ lbl = UILabel(frame:...)lbl.text = "Foo“return lbl }()使用闭包进行
该属性必须声明为var
让labelText = "Bar“惰性变量标签: UILabel ={ lbl = UILabel(frame:...)lbl.text = "Foo“+ self.labelText return lbl }()
https://stackoverflow.com/questions/40460118
复制相似问题