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

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

懶加載的一些問題

2019-11-09 16:44:28
字體:
來源:轉載
供稿:網友
所謂的懶加載可以定義為:延時加載,即當對象需要用到的時候再去加載。其實就是所謂的重寫對象的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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 观塘区| 平顶山市| 华宁县| 玛沁县| 门头沟区| 柘城县| 枣庄市| 庄河市| 饶平县| 依兰县| 镇平县| 临泽县| 丰城市| 开封市| 周口市| 龙井市| 玉林市| 策勒县| 墨玉县| 荆门市| 永修县| 巩留县| 东方市| 英山县| 蒲城县| 株洲县| 互助| 正宁县| 长汀县| 瑞丽市| 监利县| 双鸭山市| 祥云县| 阳朔县| 锦屏县| 昌平区| 普格县| 新平| 富阳市| 雅安市| 侯马市|