亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS如何實現懶加載

發布時間:2021-07-09 09:22:51 來源:億速云 閱讀:176 作者:小新 欄目:移動開發

這篇文章主要介紹iOS如何實現懶加載,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

什么是懶加載

懶加載又稱為延遲加載,它是指系統不會在初始化是就加載某個對象,而是在第一次調用(使用 get 方法)時才加載這個對象到內存,簡單點兒說就是當對象被系統或者開發者需要用到的時候再去加載。它的實現方法實質上就是覆寫該對象的 get 方法,并將該對象在初始化時需要實現的代碼在 get 方法中實現。

使用懶加載的優點

  1. 不需要在 viewDidLoad 中實例化對象,簡化代碼,使結構清晰易懂,增強代碼的可讀性

  2. 對象的實例化在getter方法中,對象各司其職,降低代碼耦合性

  3. 提升初始化加載速度,對系統的內存占用率會減小

  4. 減少內存占用

viewDidLoad正常加載代碼示例

就拿昨天的那個功能的實現中用到的數組來說吧,在viewDidLoad中正常加載是這樣子的:

@interface ViewController ()<UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, strong) NSArray *infoArr;//數組
@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  [self configData];
}

- (void)configData {
  _infoArr = @[@{@"title":@"出團日期", @"routeName":@"線路名稱一", @"time":@"2015/11/21", @"num":@"20", @"price":@"124.0", @"code":@"DAGSDSASA"},
         @{@"title":@"余位", @"routeName":@"線路名稱二", @"time":@"2015/11/21", @"num":@"34", @"price":@"234", @"code":@"TAGDFASFAF"},
         @{@"title":@"價格", @"routeName":@"線路名稱三", @"time":@"2015/11/21", @"num":@"12", @"price":@"634", @"code":@"GHGASDAS"},
         @{@"title":@"團代號", @"routeName":@"線路名稱四", @"time":@"2015/11/56", @"num":@"54", @"price":@"632", @"code":@"DAADSFAD"}];
}

從上面的代碼片段中很容易看出來,當控制器被加載完之后也就開始加載viewDidLoad中的內容了,假設這個_infoArr是在某些事件被觸發之后才會被調用,這時就沒有必要再控制器加載完就去加載這個數組數據了,如果事件不觸發就意味著_infoArr永遠不會被加載,這樣的話在viewDidLoad中把它加載了就顯得很多余了并且也是很耗內存的。

懶加載方法示例

- (NSArray *)infoArr {
  if (!_infoArr) {
    _infoArr = @[@{@"title":@"出團日期", @"routeName":@"線路名稱一", @"time":@"2015/11/21", @"num":@"20", @"price":@"124.0", @"code":@"DAGSDSASA"},
           @{@"title":@"余位", @"routeName":@"線路名稱二", @"time":@"2015/11/21", @"num":@"34", @"price":@"234", @"code":@"TAGDFASFAF"},
           @{@"title":@"價格", @"routeName":@"線路名稱三", @"time":@"2015/11/21", @"num":@"12", @"price":@"634", @"code":@"GHGASDAS"},
           @{@"title":@"團代號", @"routeName":@"線路名稱四", @"time":@"2015/11/56", @"num":@"54", @"price":@"632", @"code":@"DAADSFAD"}];
  }
  return _infoArr;
}

像上面這種調用getter方法的加載方式就是懶加載了,這樣當需要用到_infoArr的時候,就會調用[self infoArr]方法(既是getter方法),此時系統會去調用getter方法,然后在getter方法中獲取數據的賦值,然后返回供使用(需要值得注意的地方就是在getter方法中不要使用self.infoArr, 因為self.infoArr會調用getter方法,造成死循環)。

以上是“iOS如何實現懶加載”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

田东县| 鱼台县| 利津县| 柘城县| 桂东县| 邻水| 呼玛县| 吉木萨尔县| 哈密市| 和政县| 闽侯县| 西贡区| 盱眙县| 南宁市| 华池县| 徐汇区| 扶风县| 多伦县| 汕头市| 皋兰县| 诏安县| 措美县| 大英县| 金塔县| 河池市| 中方县| 郴州市| 灌云县| 府谷县| 平舆县| 右玉县| 尼勒克县| 平远县| 清丰县| 沂水县| 漾濞| 陆川县| 汽车| 周宁县| 龙胜| 舒兰市|