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方法;
輸出結果: