IOS-lazyload思想

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方法;

輸出結果:

 

相關文章
相關標籤/搜索