使用@property指令,编译器会自动生成setter和getter,单独重写getter或setter,不会出现异常,但同时重写getter和setter,则会报错。
原因:同时重写getter和setter方法,系统就不会自动生成_propertyName变量,所以报错。
解决方案:添加@synthesize propertyName = _propertyName;
#import "ViewController.h"
@interface ViewController ()
@property (nonatomic,strong)NSMutableArray *dataArr;
@end
@implementation ViewController
@synthesize dataArr = _dataArr;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
-(NSMutableArray *)dataArr{
if (!_dataArr) {
_dataArr = [NSMutableArray array];
}
return _dataArr;
}
-(void)setDataArr:(NSMutableArray *)dataArr{
if (_dataArr != dataArr) {
_dataArr = dataArr;
}
}
@end