arc里面怎么重载set方法?

freecunix 发布于 2013年12月11日
无人欣赏。

比如有: @property(strong, nonatomic)Myobject *obj;

重载这样写就行了吗?会不会有引用计数的问题?_obj也能自动加引用计数呀? - (void)setObj:(Myobject *)obj { _obj = obj; }

共13条回复
tinyfool 回复于 2013年12月11日

arc了,你管他呢

zhangmeteor 回复于 2013年12月11日

自己重写我感觉不会自己增加引用计数把。。。仅仅是猜想。。没实践过。。

adad184 回复于 2013年12月11日

你这样写是对的

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。

megan 回复于 2013年12月11日
  1. @synthesize userId = _userId;
- (void)setUserId:(NSString *)userId

{ if (![_userId isEqualToString:userId]) { _userId = userId;

    [[NSUserDefaults standardUserDefaults] setObject:_userId forKey:@"userId"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

}

  • (NSString *)userId { if (!_userId) { _userId = [[NSUserDefaults standardUserDefaults] objectForKey:@"userId"]; } return _userId; }

// 当然这里userdefault不是必要的。我这里是需要存起来。你可以根据需要修改代码。

@tinyfool 强烈建议增加插入代码功能,这里代码好乱

tinyfool 回复于 2013年12月11日

5楼 @megan 本来就有代码功能啊,硕大的工具栏,看一眼啊

megan 回复于 2013年12月11日

6楼 @tinyfool 只能加单行?

tinyfool 回复于 2013年12月11日

7楼 @megan 选中代码,点工具栏101010……

adad184 回复于 2013年12月11日

4楼 @terryso 他的本意就是要+1, 因为他声明的是strong..

terryso 回复于 2013年12月11日

9楼 @adad184 我知道他是想加1,我只是想解释一下为啥会+1而已。。。

freecunix 回复于 2013年12月12日

@terryso 非常感谢! ^^

zhangmeteor 回复于 2013年12月12日

4楼 @terryso 是哦。。

morpheus1984 回复于 2013年12月17日

10楼 @terryso 解释的很赞。新手看到本帖后会长姿势。

本帖有13个回复,因为您没有注册或者登录本站,所以,只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。

登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]