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)。
相关文章推荐
- javascript的内置对象参考
- ios开发 各种字体
- iTween基础之Audio(音量和音调的变化)
- React-约束组件及无约束组件详解
- 131.View the Exhibit and examine the structure of the PRODUCT, COMPONENT, and PDT_COMP tables.
- Unity3D -- 快速排序
- android判断设备是手机还是平板method
- Java ConcurrentModificationException异常原因和解决方法
- codevs 3094 寻找sb4
- arcpy导入错误 问题 “ImportError: No module named arcpy”
- 子线程更新UI,牵扯activity的启动过程
- U3d基础知识1
- TortoiseGit中SSH密钥的配置方法
- App架构经验总结
- Java基础学习总结(31)——Java思维导图
- Java基础学习总结(31)——Java思维导图
- java思维导图
- iso 自有 正反编码
- Java并发编程(八):同步容器(转载)
- <html:option></html:option>转化成<option></option>时加了selected属性