//
// ViewController.m
// LazyLoading
//
//查看:http://www.jianshu.com/p/417d3a25aaf4
#import "ViewController.h"
@interface ViewController ()
@property(nonatomic,strong) NSArray * personArray;
@end
@implementation ViewController
// 重写getter方法
//使用懒加载的好处:
//
//(1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强
//
//(2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合
//
//第一部分:self.personArray是一个getter
//第二部分:不能写成 !self.personArray 这也是一个getter,getter中有getter会造成死循环
//第三部分:可以使用self.personArray,这是一个setter
//第四部分:不能使用self.personArray,这也是一个getter,getter中再有getter,自己引用自己造成死循环
-(NSArray *)personArray{ // 1
if (!_personArray) { // 2
_personArray = [NSArray arrayWithObjects:@"1", nil]; // 3
}
return _personArray; // 4
}
- (void)viewDidLoad {
[super viewDidLoad];
// 懒加载时需要注意的是当第一次使用对象时,需要调用self.因为只有这样才能调用对应的getter⽅法,对象才会被创建
NSLog(@"%ld", _personArray.count); // count: 0
NSLog(@"%ld", self.personArray.count); // count: 1
}
@end
懒加载、self.a和_a
最新推荐文章于 2024-08-04 16:29:04 发布