国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

懶加載的一些問題

2019-11-09 17:45:58
字體:
來源:轉載
供稿:網友
所謂的懶加載可以定義為:延時加載,即當對象需要用到的時候再去加載。其實就是所謂的重寫對象的get方法,當系統或者開發者調用對象的get方法時,再去加載對象。需要注意:重寫get方法時,先判斷對象當前是否為空,為空的話再去實例化對象懶加載的優點不需將對象的實例化寫到viewDidLoad,可以簡化代碼,增強代碼的可讀性對象的實例化在getter方法中,各司其職,降低耦合性對系統的內存占用率會減小

viewDidLoad正常加載代碼示例

沒用懶加載的時候,從plist獲取數據,返回一個數組,需要寫在viewDidLoad方法中獲取@interface ViewController ()@PRoperty (nonatomic, strong) NSArray *shopData;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    _shopData = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"shop" ofType:@"plist"]];}@end顯而易見,當控制器被加載完成后就會加載當前的shopData,假如shopData是在某些事件被觸發的時候才會被調用,沒必要在控制器加載完就去獲取plist文件,如果事件不被觸發,代表著shopData永遠不會被用到,這樣在viewDidLoad中加載shopData就會十分多余,并且耗用內存

懶加載代碼示例

- (void)viewDidLoad {    [super viewDidLoad];}- (NSArray *)shopData{    if (!_shopData) {        _shopData = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"shop" ofType:@"plist"]];    }    return _shopData;}@end

當需要用到shopData的時候,就會調用[self shopData]的方法(即getter方法),此時系統會去調用getter方法,然后再getter方法中獲取plist文件內容,然后返回使用(需要注意在getter方法里切勿使用self.shopData,因為self.shopData會調用getter方法,造成死循環)

//[self shopData] 相當于self.shopData

總結:懶加載即用到時方去加載對象


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安平县| 阜城县| 宜昌市| 准格尔旗| 五莲县| 高邮市| 嵊泗县| 商丘市| 曲水县| 会同县| 顺义区| 宁乡县| 晋州市| 东乡| 买车| 大宁县| 瓮安县| 宜丰县| 清苑县| 章丘市| 石城县| 庄河市| 托克托县| 惠安县| 华容县| 博客| 赤壁市| 西林县| 大洼县| 邵阳市| 彭山县| 宜章县| 游戏| 托克托县| 兴安盟| 石景山区| 阳原县| 天等县| 乌苏市| 肥乡县| 寻乌县|