weak属性需要在dealloc中置nil么?
出题者简介: 孙源(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)。
转载于:https://www.cnblogs.com/starainDou/p/5253476.html
weak属性需要在dealloc中置nil么?相关推荐
- weak 属性需要在dealloc中置为nil吗
不需要,在 ARC 环境下,无论是强指针还是弱指针都不需要在 dealloc 中置为 nil ,ARC 会自动处理的.
- iOS经典面试题之“runtime是如何实现weak变量的自动置nil”
一.weak 属性特点 weak 表明该属性定义了一种"非拥有关系" (nonowning relationship): 为 weak 属性设置新值时,设置方法既不保留新值,也不释 ...
- Objective C 中的nil,Nil,NULL和NSNull理解
kenyo网友的原创说法是:做IOS开发的估计都对Objective-C的内存管理机制很头疼,一不小心程序就会出内存泄露,我也不例外,前几天被指针的置nil与release给搞惨了,今和大家详细解说一 ...
- association weak 属性
association weak 属性 当给类添加分类添加属性时,我们一般使用关联对象来实现 管理关联对象的方法: objc_setAssociatedObject(id object, void * ...
- python中bd是什么属性_聊一聊:Python中对象的属性
作者:Vamei 出处:http://www.cnblogs.com/vamei Python一切皆对象(object),每个对象都可能有多个属性(attribute).Python的属性有一套统一的 ...
- ai如何置入_如何在 InDesign 中置入、导入和插入图像
置入(导入)图形 "置入"命令是用于向 InDesign 插入图形的主要方法,因为该命令可以提供最高级别的分辨率.文件格式.多页面 PDF.INDD 文件和颜色支持.置入图形也称为 ...
- 7、中置、一元、赋值、结合、apply和update、unapply提取器
中置操作符 scala> 1 to 5 res0: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5)scala& ...
- weak-自动置nil机制
一 .实现 runtime在注册类时,会布局一个weak表(hash表),key是所指对象的地址,value是weak指针的地址的数组:当对象释放时,层层调用后,通过arr_clear_dealloc ...
- 如何查看 el-form-item 的prop属性_PHP 7.4中的类型属性(Typed Properties)
php中文网最新课程 每日17点准时技术干货分享 在PHP 7.4中添加了类型属性,并对PHP的类型系统进行了重大改进.这些更改是完全可选的,并且不破坏以前的版本. 在这篇文章中,我们将深入了解这个特 ...
- video标签poster属性在安卓微信中不生效问题解决
video标签poster属性在安卓微信中不生效问题解决 参考文章: (1)video标签poster属性在安卓微信中不生效问题解决 (2)https://www.cnblogs.com/shicha ...
最新文章
- SylixOS ARP攻击解决办法
- SSH登录忽然变慢与DNS反向解析问题处理
- bootstrap框架中data-xxx 的属性
- 用python定位手机_使用Python定位android和iphone
- phantomjsjava_Java利用Phantomjs实现生成图片的功能
- iOS开发CAAnimation详解
- 补习系列(13)-springboot redis 与发布订阅
- python设置文件权限_Python os.chmod() 方法
- 商业医疗险住院报销需要什么材料?
- HTML表单效果图,html-图片/表格/表单
- matlab2016限制内存,matlab
- C#获取实体的属性和值(通用于BS、cs架构)
- Matlab深度学习——入门
- FDDB人脸检测测评数据集介绍
- 互联网舆情监测与分析系统作用及使用功能详解
- Matlab Coder杂记
- python处理图片文件,python 间接处理webp图片文件
- 清理outlook缓存
- Three.js坐标系与变换矩阵快速入门
- 简单HQL练习-统计店铺访客数
热门文章
- python基础知识——函数(下)
- 数据结构编程题及解析c语言版,数据结构习题集答案(C语言版).pdf_c语言数据结构题目,c语言数据结构答案-C/C++文档类资源...
- pid调节软件_三面大疆惨败,因为不懂PID的积分抗饱和
- oracle中批量修改表,Oracle 批量修改某个用户下表的表空间
- 计算机学院学生会会徽设计,学生会会徽设计策划书
- html css 开发商业站点,Accp60_S1使用HTML语言和CSS开发商业站点(阅读).doc
- vscode 左侧图标_分钟将vscode撸成小霸王
- 中指北针怎么画_木工图纸怎么快速看懂?助你看懂施工图的9个技巧
- Python数据可视化库——Matplotlib
- Windows10 VS2017 C++ Json解析(使用jsoncpp库)