1.Lazy instantiation(懶加載)
? ? ? 先說一下什么是懶加載吧。懶加載—也稱為延遲加載,即在需要的時候才加載(效率低,占用內存小)。說的通俗一點呢,在開發的時候,當程序中啟動的時候不加載資源,只有在運行當需要一些資源時,再去加載這些資源。從代碼的可讀性上考慮,一個臃腫的viewDidLoad方法可以被我們分散開,閱讀的人可以清楚的看到addSubview有哪些;
2. 那這個懶加載怎么寫呢?
? ? ?(1)首先在.h中聲明一個myLabel
? ? ?(2)在.m中,實現myLabel的getter方法
? ? ?({...})寫法是什么鬼,它的學名是小括號內聯復合表達式,來自《gcc官方對此的說明》,源自gcc對c的擴展,如今被clang繼承;
? ? ?(3)加載myLabel
? ? ?在這里一定要用self.myLabel,在這里不用過多解釋,大家應該都知道為什么;
? ? ? 以上就是對于Lazy instantiation(懶加載)的理解,以及簡單的使用,蘋果官方有一篇關于名為LazyTableImages的demo不錯,大家可以借鑒;這是蘋果公司提倡的做法。其實蘋果公司做的IOS系統中很多地方都用到了懶加載的方式,比如控制器的View的創建。
? ? ? 代碼也是一件藝術品,當其他同行閱讀你的代碼感覺又臭又長的時候,要好好反省自己的作品,有時間一定多review,養成一個好習慣,每一個模塊都要雕刻的精細。