iOS 中setter和getter方法为什么不可以同时写

单独写setter方法或者getter方法不会报错。
但是同时写,会报错,说不认识成员变量。
例如属性NSString*name;
-(void)setName:(NSString*)name
{
_name=name;
}
-(NSString*)name
{
return_name;
}
慕慕森
浏览 349回答 2
2回答

哈士奇WWW

如果同时重写了getter和setter方法,那么系统就不会帮你自动生成这个成员变量,所以当然报错说不认识这个成员变量。先手动生成成员变量,然后再同时重写了getter和setter方法。BOOL_carOwner;#pragmamark-gettersandsetters-(void)setCarOwner:(BOOL)carOwner{_carOwner=carOwner;//自定义操作[[NSUserDefaultsstandardUserDefaults]setBool:_carOwnerforKey:@"KeyIsCarOwner"];[[NSUserDefaultsstandardUserDefaults]synchronize];}-(BOOL)carOwner{//自定义操作idresult=[[NSUserDefaultsstandardUserDefaults]valueForKey:@"KeyIsCarOwner"];if(result){return[[[NSUserDefaultsstandardUserDefaults]valueForKey:@"KeyIsCarOwner"]boolValue];}return_carOwner;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript