在示例代碼中,我看到了兩種不同風格的聲明對象。一個優於另一個的優點是什麼?這兩種聲明風格之間有什麼區別/優點
兩個被聲明爲 var btn: UIButton!
風格1:
btn = UIButton()
btn.translatesAutoresizingMaskIntoConstraints = false
btn.layer.borderColor = UIColor.blue.cgColor
btn.layer.borderWidth = 1
...
self.view.addSubview(btn)
風格2:
btn = {
let b = UIButton()
b.translatesAutoresizingMaskIntoConstraints = false
b.layer.borderColor = UIColor.blue.cgColor
b.layer.borderWidth = 1
...
return b
}()
self.view.addSubview(btn)
我目前看到的唯一的好處是,第二風格使得代碼更清晰,當你有許多obj學分。你也可以在Xcode中摺疊它們。還有其他優勢嗎?第二個版本不會在運行時「花費」更多的資源嗎? 哪個更好?
感謝
我不知道這是否有所作爲,但第二種模式只在所有設置完成後纔會分配給'btn'(即不會在發生錯誤時保留'btn'半初始化) 。 – Thilo
我認爲這是有用的一個情況。當你想創建一個對象時,必須在創建時更改/分配一些值,例如一個具有可選屬性的結構,init方法不能分配它。但是你同時想保持變量本身不變。 – Surely
在任何情況下都不應將該按鈕聲明爲隱式解包可選。 – nhgrif