懶載入的定義: 所謂的懶載入可以定義為: 延時載入,即當對象需要用到的時候再去載入。其實就是所謂的重寫對象的get方法, 當系統或者開發者調用對象的get方法時,再去載入對象。 懶載入的優點: 1.不需將對象的實例化寫到viewDidLoad,可以簡化代碼,增強代碼的可讀性 2.對象的實例化在get ...
懶載入的定義:
所謂的懶載入可以定義為:
延時載入,即當對象需要用到的時候再去載入。其實就是所謂的重寫對象的get方法,
當系統或者開發者調用對象的get方法時,再去載入對象。
懶載入的優點:
1.不需將對象的實例化寫到viewDidLoad,可以簡化代碼,增強代碼的可讀性
2.對象的實例化在getter方法中,各司其職,降低耦合性
3.對系統的記憶體占用率會減小,只有當真正需要資源時,再去載入,節省了記憶體資源
使用懶載入註意事項:
1.重寫get方法時,先判斷對象當前是否為空,為空的話再去實例化對象
2.需要註意在getter方法里切勿使用self.shopData,因為self.shopData會調用getter方法,造成死迴圈
什麼時候使用懶載入:
1.為什麼要使用懶載入:
(1)這是蘋果公司提倡的做法,其實蘋果公司做的IOS系統中很多地方都用到了懶載入的方式,比如控制器的View的創建。
(2)我們知道iOS設備的記憶體有限,如果在程式在啟動後就一次性載入將來會用到的所有資源,那麼就有可能會耗盡iOS設備的記憶體。這些資源例如大量數據,圖片,音頻等等,所以我們在使用懶載入的時候一定要註意先判斷是否已經有了,如果沒有那麼再去進行實例化
2.什麼時候使用:
不是所有getter都需要寫成懶載入的。有些時候很確定那些實例變數需要在某個地方初始化,那就不需要重寫getter
了。大量的重寫getter會造成大量的版面浪費,而且增加很多輸入量。舉個例子,控制器的viewDidLoad後所有佈局和
視圖都需要初始化好,那麼可以將這些控制項都放到一個獨立的方法里初始化和佈局,並不需要單獨寫getter。