image

编辑人: 舍溪插画

calendar2025-04-12

message2

visits862

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

不需要。

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

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

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

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

(void)setObject:(NSObject *)object
{
objc_setAssociatedObject(self, "object", object, OBJC_ASSOCIATION_ASSIGN);
[object cyl_runAtDealloc:^];
}
也即:在属性所指的对象遭到摧毁时,属性值也会清空(nil out)。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:weak属性需要在dealloc中置nil么?

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share