Swift—懶加載

*延遲存儲屬性*

* 延遲存儲屬性是指當第一次被調用的時候才會計算其初始值的屬性。在屬性聲明前使用lazy來標示一個延遲存儲屬性

* 最常見的延遲存儲屬性:

> * 執行某個方法返回處理好的數據

> * 執行某個閉包返回處理好的數據

* 注意:

* 必須將延遲存儲屬性聲明成變量(使用var關鍵字),因為屬性的初始值可能在實例構造完成之后才會得到。而常量屬性在構造過程完成之前必須要有初始值,因此無法聲明成延遲屬性。

* 如果一個被標記為lazy的屬性在沒有初始化時就同時被多個線程訪問,則無法保證該屬性只會被初始化一次

lazy var dataList: \[String] = {

''? ? print("我懶加載了")

''? ? return ["lee", "jack", "why"]

'' }()

'' let demoFunc = {

''? ? () -> [String]

''? ? in

''? ? print("我懶加載了")

''? ? return ["lee", "jack", "why"]

'' }

'' lazy var dataList2: [String] = self.demoFunc()

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 懶加載的2個好處:延遲加載屬性(UI類型控件一般都會延遲加載)在后邊的代碼中,延遲加載的屬性,不用再強制解包 懶加...
    Homer1ynn閱讀 1,393評論 5 3
  • init和initWithCoder 在UIView及其子類,重寫了構造函數init 也必須實現initWithC...
    呦釋原點閱讀 6,297評論 0 3
  • 在程序設計中,我們經常會使用 懶加載 ,顧名思義,就是用到的時候再開辟空間,比如iOS開發中的最常用控件UITab...
    貓爪閱讀 21,244評論 10 56
  • 懶加載就是延時加載的意思,比方說給某個類定義個對象屬性,在用到這個屬性的時候才初始化,而且重復使用只會初始化一次,...
    Super超人閱讀 1,905評論 0 3
  • 年終聚餐會上,幾位同事頻頻和老領導舉杯敬酒,做為剛到公司不久的新人,我還是按捺不住和要好的同事商議起座和領導敬酒...
    生命狂奔閱讀 354評論 0 0