IOS内存管理3&之保留环&弱引用&属性保存
来源:互联网 发布:照片转换卡通软件 编辑:程序博客网 时间:2024/05/21 12:48
IOS的闭环链接和属性的内存管理
IOS过程中我们常常会遇到环链接:就是有A,B两个类。我们在A类和B类互相引用,是的程序可以正常运行。但是在整个程序的过程中两者之间都不能释放,从而造成内存泄露。
@implementation temp{
id _thing;
}
-(void) setThing: (id)what{
self->_thing = what;
}
temp *m1 = [tempnew];
temp *m2 = [tempnew];
m1.thing = m2;
m2.thing = m1;
此时就会出现弱连接的结构,解决方式是:_weak id _thing;
使用weak的原理是:在ARC中使用weak弱引用时,该对象会被及记录在一个暂存器列表上,当我们释放对象时会在暂存器列表进行查找,如果找到就会释放内存。所使用的指针就会被置为nil。
Strong是一个与weak相对应的属性
在我们所见到的UIkIt的应用中所有属性都是strong(也就是说strong是默认属性)。
retain:在内存储存中是count+1然后进行重新复制,就是说每次复制都会是ARC的计数器增加。
copy:是重新申请一个内存空间,然后count+1然后进行赋值。
assign:是清空赋值,然后进行复制。count没有加1(是默认属性)。
nonatomic:多线程安全,当多线程进行访问时访问器会对其进行加锁,防止在访问时进行改变同时也增加内存消耗。
atomic:多线程不安全,参照上面。
readonly&readwrite:readwrite(是默认属性)可以进行读写操作,readonly是只读。
0 0
- IOS内存管理3&之保留环&弱引用&属性保存
- iOS内存管理之循环引用
- iOS内存管理之引用计数初识
- iOS内存管理之@property属性详解
- iOS之属性定义和内存管理
- iOS*内存管理-强引用与弱引用
- 内存管理之引用计数
- 内存管理之引用计数
- 内存管理之引用计数
- 内存管理之引用计数器
- iOS内存管理(4)--Block属性用copy修饰 & 避免循环引用的问题
- iOS 基本内存管理-引用计数器
- IOS内存管理--手动引用计数实现
- iOS 内存管理~深浅拷贝~引用计数器
- IOS开发(40)之objective-C 的内存管理之-引用计数
- 小议ios内存管理与属性【转】
- 黑马程序员--IOS学习日记:07--内存管理之引用计数器
- 黑马程序员---内存管理之引用计数器
- 机器学习:Apriori发现频繁项集和关联规则
- GOOGLE 面试
- 创业漫话14(因人设位还是虚位找人?)
- 【Android】《第一行代码—Android》第三章总结
- 选择排序
- IOS内存管理3&之保留环&弱引用&属性保存
- 网站技巧
- 峰顶虽高虽远不易及,却有更浩瀚的视界【转自论坛】
- mac下使用adb链接安卓手机教程
- Prof. Li Feifei写给她学生的一封信
- 玩转四旋翼无人机(DJI SDK LIB)
- ARM64-memcpy.S 汇编源码分析
- JavaScript的Ajax第一次
- python入门: 快速python语法总结