不需要。
在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)。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!