问题
在开发当中,遇到定义了一个属性,需要同时重构它的setter、getter方法,有的时候会报错,上代码:
@interface SetterGetterClass : NSObject
@property(nonatomic,copy)NSString *developername;
@end
这个是声明的属性,下面是实现setter、getter方法以后报错的图片:
- (void)setDevelopername:(NSString *)developername{ //MRC下的形式
if(_developername != developername){
[_developername release];
_developername = [developername copy];
}
}
- (NSString *)developername{
return _developername;
}
setter、getter
错误信息
没有声明的标识符的使用,意思就是_developername没有被声明,找不到该变量,那么问题来了,为什么找不到该变量,明明已经property一个成员属性了。
property具体的作用:
@property(nonatomic,copy)NSString *developername;
1.property是定义属性,不是成员变量,声明了setter、getter方法;
在新的xocde的环境下,不加@synthesize会自动生成私有的带下划线的的成员变量、该变量的setter、getter方法 也就是这个属性的变量 = _developername并可以用setter、getter外部访问ÿ