@property (nonatomic,copy)NSString * lazyStr;
getter:
- (NSString *)lazyStr{
if (!_lazyStr) {
NSLog(@"%@",_lazyStr);
_lazyStr = @"123";
NSLog(@"%@",_lazyStr);
}
return _lazyStr;
}
setter:
-(void)setLazyStr:(NSString *)lazyStr{
if (_lazyStr != lazyStr) {
_lazyStr = lazyStr;
}
}
同時重寫setter和getter方法報錯Use of undeclared identifier '_XXXX'
原因:因為重寫setter和getter系統不會自動幫你生成_xxxx的變量,所以需要聲明一句
@implementation ViewController
@synthesize lazyStr =_lazyStr;
注:這句的意思就是把屬性的存取方法作用於變量;