您的位置:首页 > 其它

weak属性需要在dealloc中置nil么?

2016-03-08 11:54 387 查看

出题者简介: 孙源(sunnyxx),目前就职于百度

整理者简介:陈奕龙(子循),目前就职于滴滴出行。

转载者:豆电雨(starain)微信:doudianyu



不需要。


在ARC环境无论是强指针还是弱指针都无需在 dealloc 设置为 nil , ARC 会自动帮我们处理


即便是编译器不帮我们做这些,weak也不需要在 dealloc 中置nil:

正如上文的:runtime 如何实现 weak 属性 中提到的:

我们模拟下 weak 的 setter 方法,应该如下:

- (void)setObject:(NSObject *)object
{
objc_setAssociatedObject(self, "object", object, OBJC_ASSOCIATION_ASSIGN);
[object cyl_runAtDealloc:^{
_object = nil;
}];
}


也即:


在属性所指的对象遭到摧毁时,属性值也会清空(nil out)。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: