@property(nonatomic,strong)UILabel *firstlab;
@property(nonatomic,strong)UILabel *lastlab;
@property(nonatomic,strong)UIImageView *icon;
@property(nonatomic,strong)UIButton *leftbtn;
@property(nonatomic,strong)UIButton *rightbtn;
@property(nonatomic,strong)NSArray *array;
@property(nonatomic ,assign)int i;
//延遲加載
/**1.圖片的序號標籤*/
-(UILabel *)firstlab
{
//判斷是否已經有了,若沒有,則進行實例化
if (!_firstlab) {
_firstlab=[[UILabel alloc]initWithFrame:CGRectMake(20, 10, 300, 30)];
[_firstlab setTextAlignment:NSTextAlignmentCenter];
[self.view addSubview:_firstlab];
}
return _firstlab;
}
從這個Label的UI控件懶加載分析:
1.-(UILabel *)firstlab
和最上面聲明的firstlab類型和名字一樣UILabel *firstlab。
@property(nonatomic,strong)UILabel *firstlab;//聲明用strong
2 判斷是否已經有了,若沒有,則進行實例化
(!_firstlab) 沒有這個firstlab變量時判爲真進行實例化。
_firstlab=[[UILabel alloc]initWithFrame:CGRectMake(20, 10, 300, 30)];
[_firstlab setTextAlignment:NSTextAlignmentCenter];
[self.view addSubview:_firstlab];
3 將改變後的firstlab返回
return _firstlab;
引用上文:文老師所用懶加載描述
1.懶加載基本
懶加載——也稱爲延遲加載,即在需要的時候才加載(效率低,佔用內存小)。所謂懶加載,寫的是其get方法.
注意:如果是懶加載的話則一定要注意先判斷是否已經有了,如果沒有那麼再去進行實例化
2.使用懶加載的好處:
(1)不必將創建對象的代碼全部寫在viewDidLoad方法中,代碼的可讀性更強
(2)每個控件的getter方法中分別負責各自的實例化處理,代碼彼此之間的獨立性強,鬆耦合