84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
都说IOS中有一个LazyLoad思想,那,具体来讲,LazyLoad是什么含义呢?
认证0级讲师
Lazy,谁懒?当然是计算机偷懒。通常用法,你有一个NSArray的property,但是你不在初始化方法里为其alloc/init,它就只是一个指针,不会占用内存。然后你写了此property的访问器,在访问器里判断此property的指针是否为空,若为空,就alloc/init,这时才真正生成这个NSArray。
这样子达到的效果就是,除非这个NSArray被使用,否则它永远不会真正生成,也就不会占用内存。计算机的偷懒行为可能减少内存占用,何乐为不为?
其他LazyLoad的思想都是这样:拖到最后一刻,万不得已了,才开始占用资源,这在iPhone这种内存较少的设备上是很有必要的。
字面意思是延迟加载,或者可以理解为按需加载吧
controller的view是lazyload
把Object的alloc/init放到getter里,比如`- (NSObject *)object{
if (!_object) { _object = [[NSObject alloc] init]; } return _object;
}`
这样每次通过self.object使用时,这个object都可用
Lazy,谁懒?当然是计算机偷懒。通常用法,你有一个NSArray的property,但是你不在初始化方法里为其alloc/init,它就只是一个指针,不会占用内存。然后你写了此property的访问器,在访问器里判断此property的指针是否为空,若为空,就alloc/init,这时才真正生成这个NSArray。
这样子达到的效果就是,除非这个NSArray被使用,否则它永远不会真正生成,也就不会占用内存。计算机的偷懒行为可能减少内存占用,何乐为不为?
其他LazyLoad的思想都是这样:拖到最后一刻,万不得已了,才开始占用资源,这在iPhone这种内存较少的设备上是很有必要的。
字面意思是延迟加载,或者可以理解为按需加载吧
controller的view是lazyload
懒加载。 为了解决手机内存小,避免一次初始化太多的问题。可以重写属性 get方法来实现。
把Object的alloc/init放到getter里,比如
`- (NSObject *)object
{
}`
这样每次通过self.object使用时,这个object都可用