今天遇到一个问题,之前在代码中写了一个数组的加载方式,现在我想在setter方法中写一些逻辑结果报错了。比如申明一个可变数组,写懒加载方法。
@property (strong, nonatomic) NSMutableArray *dataArray;
- (NSMutableArray *)dataArray{
if (!_dataArray) {
_dataArray = [NSMutableArray array];
}
return _dataArray;
}
这个时候并没有什么问题,但是我重写setter方法就是报错
屏幕快照 2019-06-27 15.37.47.png
懒加载本质上就是对一个实例的getter方法的重写?重写setter方法怎么会报 "use of undeclared identifier"的错误?
原因:重写setter和getter系统不会自动帮你生成_xxxx的变量,所以需要声明一句
@synthesize dataArray = _dataArray;
好了问题解决了。