由于@property声明的属性,系统已经自动生成了set方法,get方法,所以一般情况下不需要开发人员去实现set、get方法,但是开发人员也会需要实现懒加载等需要重构get方法的功能,所以我在这里大概描述一下get、set方法及一些注意事项:
例如:
@property(nonatomic,copy) NSString *paramStr;
//get方法 实现懒加载
- (NSString *)paramStr{
NSLog(@"第一步执行get方法:%p %@",&_paramStr,_paramStr);
if (!_paramStr) {
self.paramStr =[NSString new];
NSLog(@"第二步执行get方法:%p",&_paramStr);
}
NSLog(@"第三步执行get方法:%p",&_paramStr);
return _paramStr;
}
//如果同时想实现set方法
- (void)setParamStr:(NSString *)paramStr{
_paramStr=paramStr;
}
//由于系统不允许同时重构set、get方法所以会报 _paramStr 参数没有声明错误❌,但是我们可以在.m文件 合成set、get方法,实现重构set、get方法
@synthesize paramStr =_paramStr