arc里面怎么重载set方法?
freecunix
由 freecunix
发布于 2013年12月11日
无人欣赏。
比如有: @property(strong, nonatomic)Myobject *obj;
重载这样写就行了吗?会不会有引用计数的问题?_obj也能自动加引用计数呀? - (void)setObj:(Myobject *)obj { _obj = obj; }
共13条回复
楼长
·
tinyfool
回复于 2013年12月11日
arc了,你管他呢
2楼
·
zhangmeteor
回复于 2013年12月11日
自己重写我感觉不会自己增加引用计数把。。。仅仅是猜想。。没实践过。。
3楼
·
adad184
回复于 2013年12月11日
你这样写是对的
4楼
·
terryso
回复于 2013年12月11日
2楼 @zhangmeteor _obj = obj 这样写在ARC下是会增加引用计数的。
因为 id _obj = obj 在ARC下,其实等于 id __strong _obj = obj,这是会引用计数+1的。。。如果你不想引用计数+1,必须显示声明__weak。例如: id __weak _obj = obj,这样就不会+1。
5楼
·
megan
回复于 2013年12月11日
@synthesize userId = _userId;
- (void)setUserId:(NSString *)userId{ if (![_userId isEqualToString:userId]) { _userId = userId;
[[NSUserDefaults standardUserDefaults] setObject:_userId forKey:@"userId"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}
// 当然这里userdefault不是必要的。我这里是需要存起来。你可以根据需要修改代码。
@tinyfool 强烈建议增加插入代码功能,这里代码好乱
本帖有13个回复,因为您没有注册或者登录本站,所以只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。