单独写setter方法或者getter方法不会报错。
但是同时写,会报错,说不认识成员变量。
例如属性 NSString * name;
-(void)setName:(NSString *)name
{
_name = name;
}
-(NSString *)name
{
return _name;
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
objective-c下如果某属性的getter,setter都要重写的话需要加上
@synthesize propertyName = _propertyName;至于为什么网上有很多详细的文章分析,可以去看看
如果同时重写了getter和setter方法,那么系统就不会帮你自动生成这个成员变量,所以当然报错说不认识这个成员变量。先手动生成成员变量,然后再同时重写了getter和setter方法。
因为你写错了啊。(:з」∠) 写成self-> name = name ;
刚去试了下,确实像你说的。不知道什么原因。加上@synthesize name = _name;语法之后就不报错了。
用self.name就行了 反正效果一样