首页
学习
活动
专区
圈层
工具
发布

iOS 懒加载能和setter方法一起使用吗?

今天遇到一个问题,之前在代码中写了一个数组的加载方式,现在我想在setter方法中写一些逻辑结果报错了。比如申明一个可变数组,写懒加载方法。

代码语言:javascript
复制
@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的变量,所以需要声明一句

代码语言:javascript
复制
@synthesize dataArray = _dataArray;

好了问题解决了。

下一篇
举报
领券