你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS中的懶加載lazyLoad

IOS中的懶加載lazyLoad

編輯:IOS開發綜合

初步寫一些自己對於lazyload的看法吧。這篇文章主要針對普通view,對於image相關的的懶加載,准備過幾天研究一下在寫。

懶加載,又稱為延遲加載。通常用法,你有一個UITextField類型的property,簡單定義為userNameTextField,但是你不在初始化方法裡為其alloc/init,它就只是一個指針,不會占用內存。

只是加載到你預想加載到的View上。如:[self addSubview:self.userNameTextField];//其中self為view,.userNameTextField為你聲明的屬性名字。

顯而易見的是,以上的指定是在view初始化的時候完成的。

另外最重要的一點是,上面在空加載的時候,一定要使用點語法,也就是咱們所說的getter方法。

然後呢?就需要我們重寫userNameTextField的getter方法了。重寫方法:

- (UITextField *)userNameTextField

{

IF(_userNameTextField == nil){

_userNameTextField =[ [UITextField alloc]initWithFrame:CGRectMakeZero];

_userNameTextField.borderStyle = ...//在訪問器裡判斷此property的指針是否為空,若為空,就alloc/init,這時才真正生成這個對象

}

return _userNameTextField;

}

最後建議大家將Frame的設置寫到layoutSubviews之中,代碼如下

- (void)layoutSubviews

{

__userNameTextField.frame = .....

}

最終達到的效果就是,除非這個對象被使用,否則它永遠不會真正生成,也就不會占用內存。

 

其他LazyLoad的思想都是這樣:拖到最後一刻,萬不得已了,才開始占用資源,這在iPhone這種內存較少的設備上是很有必要的。


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved