懶加載定義方式:
1,懶加載的基本寫法
lazy var label: UILabel = UILabel()
2,懶加載的完整寫法(一般不使用)
/**
? ? ? ? {} 包裝代碼
? ? ? ? () 執(zhí)行代碼
*/
lazy var label: UILabel = {
? ? ? ? let label = UILabel()
? ? ? ? return label
}()
懶加載的意義:
1拥知,延遲創(chuàng)建
2,最大的好處 -> 解除解包的煩惱祖搓!
和OC相比的差異
OC
Swift
Swift 中 label 一旦被設(shè)置為 nil 岸晦,懶加載也不會再執(zhí)行耘沼;
懶加載的代碼只會在第一次調(diào)用時侯魁衙,執(zhí)行閉包羡忘,然后將執(zhí)行的結(jié)果保存在 label 屬性中
注意:Swift 中一定注意不要主動清理視圖或者控件么鹤,因?yàn)閼屑虞d不會再次創(chuàng)建诀浪。