lazyload即懒加载,理解为按需加载,就是在须要时进行加载,避免提早加载和加载过多,消耗不少内存数组
一般对NSARRAY,nsmutablearray等数组进行初始化时使用;app
例如:atom
@interface ViewController ()spa
@property (nonatomic ,retain)NSMutableData *bufferData;//声明属性3d
@end指针
@implementation ZYViewControllerblog
- (void)viewDidLoad内存
{get
[super viewDidLoad];string
//不在viewDidLoad中进行初始化
[self stringAndData];//
}
//重写属性的get方法
- (NSMutableData *)bufferData
{
// !!! 注意全局变量别忘记初始化,不然她只是一个空指针。
//若是指针为空的话,对其进行初始化
if (!_bufferData)
{
_bufferData = [[NSMutableData alloc] init];
NSLog(@"-----");
}
return _bufferData;
}
-(void)stringAndData{
NSString *str1=@"as";
NSData *data=[str1 dataUsingEncoding:NSUTF8StringEncoding];
[self.bufferData appendData:data];
NSLog(@"%@",_bufferData);
NSString *str2=[[NSString alloc]initWithData:self.bufferData encoding:NSUTF8StringEncoding];
NSLog(@"%@",str2);
}
@end
采用self.Data时会调用访问器的get方法;
直接用_Data进行赋值则不会访问get,set方法;
输出结果: