都說IOS中有一個LazyLoad思想,那,具體來講,LazyLoad是什么含義呢?
2 回答

慕妹3242003
TA貢獻1824條經驗 獲得超6個贊
把Object的alloc/init放到getter里,比如
`- (NSObject *)object
{
if (!_object) { _object = [[NSObject alloc] init]; } return _object;
}`
這樣每次通過self.object使用時,這個object都可用

慕尼黑的夜晚無繁華
TA貢獻1864條經驗 獲得超6個贊
Lazy,誰懶?當然是計算機偷懶。通常用法,你有一個NSArray的property,但是你不在初始化方法里為其alloc/init,它就只是一個指針,不會占用內存。然后你寫了此property的訪問器,在訪問器里判斷此property的指針是否為空,若為空,就alloc/init,這時才真正生成這個NSArray。
這樣子達到的效果就是,除非這個NSArray被使用,否則它永遠不會真正生成,也就不會占用內存。計算機的偷懶行為可能減少內存占用,何樂為不為?
其他LazyLoad的思想都是這樣:拖到最后一刻,萬不得已了,才開始占用資源,這在iPhone這種內存較少的設備上是很有必要的。
- 2 回答
- 0 關注
- 787 瀏覽
添加回答
舉報
0/150
提交
取消