iOS 重写 get 和 set 方法
使用 @property 指令,编译器会自动生成 setter 和 getter 方法。
- 如果单独重写 getter 和 setter 方法,不会出现异常
- 但同时重写 getter 和 setter 方法,则会报错
原因:同时重写 getter 和 setter 方法,系统就不会自动生成 _propertyName
变量,所以报错
解决方案:添加 @synthesize propertyName = _propertyName;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #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
|