iOS開發(fā)之旅之懶加載

在iOS開發(fā)摸爬打滾了許久扶平,談?wù)勛约簩W(xué)習(xí)以及開發(fā)iOS的一些經(jīng)驗(yàn)清女,文章比較隨性玩徊,算是記錄自己的成長吧的榛!希望有些我走的彎路以及曾經(jīng)讓我捉耳撓腮的問題可以幫助讀者少走一些彎路琼了。

本文來談一談在開發(fā)中非常實(shí)用的懶加載技術(shù)吧!

  • 所謂的懶加載可以定義為:延時(shí)加載夫晌,即當(dāng)對象需要用到的時(shí)候再去加載雕薪。其實(shí)就是所謂的重寫對象的get方法,當(dāng)系統(tǒng)或者開發(fā)者調(diào)用對象的get方法時(shí),再去加載對象晓淀。
    需要注意:重寫get方法時(shí)蹦哼,先判斷對象當(dāng)前是否為空,為空的話再去實(shí)例化對象
  • 懶加載的優(yōu)點(diǎn)
    • 不需將對象的實(shí)例化寫到viewDidLoad要糊,可以簡化代碼,增強(qiáng)代碼的可讀性
    • 對象的實(shí)例化在getter方法中,各司其職锄俄,降低耦合性
    • 對系統(tǒng)的內(nèi)存占用率會減小

viewDidLoad正常加載代碼示例

  • 沒用懶加載的時(shí)候局劲,從plist獲取數(shù)據(jù),返回一個(gè)數(shù)組奶赠,需要寫在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```

- 顯而易見鱼填,當(dāng)控制器被加載完成后就會加載當(dāng)前的shopData,假如shopData是在某些事件被觸發(fā)的時(shí)候才會被調(diào)用毅戈,沒必要在控制器加載完就去獲取plist文件苹丸,如果事件不被觸發(fā),代表著shopData永遠(yuǎn)不會被用到苇经,這樣在viewDidLoad中加載shopData就會十分多余赘理,并且耗用內(nèi)存

#### 懶加載代碼示例
```objc
- (void)viewDidLoad {
    
    [super viewDidLoad];
}

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

@end```
- 當(dāng)需要用到shopData的時(shí)候,就會調(diào)用[self shopData]的方法(即getter方法)扇单,此時(shí)系統(tǒng)會去調(diào)用getter方法商模,然后再getter方法中獲取plist文件內(nèi)容,然后返回使用(需要注意在getter方法里切勿使用self.shopData蜘澜,因?yàn)閟elf.shopData會調(diào)用getter方法施流,造成死循環(huán))
#### 總結(jié):懶加載即用到時(shí)方去加載對象

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鄙信,隨后出現(xiàn)的幾起案子瞪醋,更是在濱河造成了極大的恐慌,老刑警劉巖装诡,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件银受,死亡現(xiàn)場離奇詭異,居然都是意外死亡慎王,警方通過查閱死者的電腦和手機(jī)蚓土,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赖淤,“玉大人蜀漆,你說我怎么就攤上這事≡酆担” “怎么了确丢?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吐限。 經(jīng)常有香客問我鲜侥,道長,這世上最難降的妖魔是什么诸典? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任描函,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舀寓。我一直安慰自己胆数,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布互墓。 她就那樣靜靜地躺著必尼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪篡撵。 梳的紋絲不亂的頭發(fā)上判莉,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機(jī)與錄音育谬,去河邊找鬼券盅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛斑司,可吹牛的內(nèi)容都是我干的渗饮。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼宿刮,長吁一口氣:“原來是場噩夢啊……” “哼互站!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起僵缺,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤胡桃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后磕潮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翠胰,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年自脯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了之景。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡膏潮,死狀恐怖锻狗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情焕参,我是刑警寧澤轻纪,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布嚎研,位于F島的核電站橡羞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏创南。R本人自食惡果不足惜涩嚣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一崇众、第九天 我趴在偏房一處隱蔽的房頂上張望掂僵。 院中可真熱鬧,春花似錦校摩、人聲如沸看峻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至溪窒,卻和暖如春坤塞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背澈蚌。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工摹芙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宛瞄。 一個(gè)月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓浮禾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親份汗。 傳聞我的和親對象是個(gè)殘疾皇子盈电,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 在iOS開發(fā)摸爬打滾了許久,談?wù)勛约簩W(xué)習(xí)以及開發(fā)iOS的一些經(jīng)驗(yàn)杯活,文章比較隨性匆帚,算是記錄自己的成長吧!希望有些我走...
    CocoLeo閱讀 280評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,515評論 25 707
  • Quartz2D是一個(gè)二維繪圖引擎旁钧,同時(shí)支持iOS和Mac OS X系統(tǒng)(跨平臺吸重,純 C語言的)。 Quartz2...
    winning_閱讀 299評論 0 1
  • 現(xiàn)在是晚上1點(diǎn)歪今,夜深人靜的時(shí)間嚎幸,我所有的舍友都已經(jīng)入睡了,但是夜晚總是在帶來黑暗的同時(shí)能給我?guī)砗芏酂o形的思緒寄猩,突...
    微冥皇閱讀 404評論 2 4
  • 1嫉晶、人活一輩子,總不可能沒有閑言碎語焦影,盡管在別人的嘴里翻云覆雨车遂,你內(nèi)心依然可以波瀾不驚,做個(gè)內(nèi)心強(qiáng)大的人斯辰,有云淡風(fēng)...
    拼出美麗閱讀 91評論 0 1