ios weak
来源:互联网 发布:php 做数据统计图 编辑:程序博客网 时间:2024/06/15 23:36
实现 weak
weak 的作用
weak
关键字的作用弱引用,所引用对象的计数器不会加一,并在引用对象被释放的时候自动被设置为 nil
。
如何实现 weak
现在我们将
weak
的思路整理一下:整个系统中存在很多个对象,这些对象都可能会被弱引用,那么我们需要一个容器来容纳这些被弱引用的对象,比如数组,在此将这个容器的数据结构标识为
objectContainerDataStructure
;一个对象可能会被多次弱引用,当这个对象被销毁时,我们需要找到这个对象的所有弱引用,所以我们需要将这些弱引用的地址(即指针)放在一个容器里,比如数组,在此将这些弱引用的地址的数据结构标识为
pointerContainerDataStructure
;当对象不再被强引用时需要销毁的时候,我们需要通过这个对象在
objectContainerDataStructure
找到其对应的pointerContainerDataStructure
,进而找到这个对象的所有弱引用,将其置为nil
,
通过上面的步骤,我们大概可以得出这么一个数据结构:
pointerContainerDataStructure
仅仅只是容纳一个对象的所有弱引用的地址,所以用数组即可;objectContainerDataStructure
是一个key-value
数据结构,将对象作为key
,对象的内存地址是最好的选择;在
iOS
中常用的key-value
数据结构就是字典Dictionary
,在这里我们的key
是一个数值对象,value
则是一个数值数组对象,可以用哈希表实现;
总结
为了实现
weak
,我们需要这样的一张弱引用表:表的数据结构是哈希表;
表的
key
是对象的内存地址;value
是指向该对象的所有弱引用的指针;
- ios weak
- IOS strong 和 weak
- ios strong和weak
- [ios] strong和weak
- ios strong和weak
- iOS weak strong
- ios strong和weak
- iOS strong 和weak
- ios weak strong图解
- iOS strong和weak
- iOS weak & strong self
- iOS strong weak
- iOS property strong/weak
- ios strong weak
- ios-strong和weak
- ios strong和weak关键字
- iOS arc机制 strong weak
- iOS ARC机制 weak strong
- Oracle高级查询实例,提升效率
- 2017GMTC全球移动技术大会专题介绍
- Java利用captcha实验图片验证码
- Linux shell编程
- Python中使用libsvm
- ios weak
- 重新排序一个序列
- ViewPager详解(二)广告轮播图
- MyEclipse常用快捷键
- Android EditText响应drawableRight等的点击事件
- Android 启动方式 显示启动
- Spring 事物对系统性能影响
- ARM Cortex-A8 的学习笔记(2)——ARM寄存器
- iOS 清除缓存封装