初识懒加载

懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其get方法.

注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化

使用懒加载的好处:

(1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强

(2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合


懒加载的具体写法:

在.h文件中  

@property(nonatomic,strong) NSArray *arr;

在.m文件中

#pragma mark -懒加载

- (NSArray*)arr{

if(!_arr) {

_arr= [[NSArrayalloc]initWithObjects:@"111",@"222",nil];

}

return_arr;

}

很明显,这是一个get方法。值得注意的是在get方法里千万不能用self.arr,若是如此会形成死循环。原因是self.arr会调用get方法,造成方法中调用自身形成死循环。

写到这里,其实大家还要注意一点,那就是self.和_的区别。因为很多人可能直接用_arr,但是这样是不会调用get方法的。你可以在viewDidLoad方法中NSLog(@"arr:%@",_arr);结果肯定null。改写成NSLog(@"arr:%@",self.arr);就能打印出数组元素。

所以在用到懒加载的时候,记得要在一开始要用self.arr,之后可以_arr,不然都没初始化,没有分配内存空间。不过我个人觉得因为get方法中已经判断有没有初始化,因此都用self.arr是没有问题的。不过这其实不是什么大问题,遇到了很容易发现,发现后在一开始使用变量的时候换成self.就行。

你可能感兴趣的:(初识懒加载)