OC内存管理初级
来源:互联网 发布:企业数据集成 编辑:程序博客网 时间:2024/05/29 19:38
一.内存管理的方式:
1.MRC (Manual Reference Count) 手动引用计数
2.ARC (Auto Reference Count) 自动引用计数
3.垃圾回收
二.内存管理机制
引用计数:
OC采用引用计数机制管理内存,当一个新的引用指向对象时,引用计数器就递增;当去掉一个引用时,引用计数器就递减.当引用计数到零时,该对象就释放占有的资源.
影响引用计数的方法:
1.+alloc 开辟内存空间,让被开辟的内存空间的引⽤用计数变为1,这是由0到1的过程
2.-retain 引⽤用计数加1
3.-copy 把某⼀内存区域的内容拷⻉一份,拷贝到新的内存空间⾥,被拷贝区域的引用计数不变,新的内存区域的引用计数加1
4.-release 引用计数减1
5.-autorelease 未来的某一时刻引用计数减1
autorelease 会将声明为autorelease 的对象,也即在 @autoreleasepool{}的大括号中的对象 放入离它最近的自动释放池中,当自动释放池销毁时,会向池中的每一个对象发送一个release消息
- dealloc:
是继承自父类的方法,当引用计数为0时,由对象自动调用.我们可以在dealloc中打印一句话,验证对象引用计数是否降为0.例如:
- (void)dealloc
{
NSLog(@"被销毁了");
[super dealloc];
}
引用计数的增加和减少相等,当引用计数降为0之后,不应该再使用这块空间
凡是使用了alloc ,retain或者copy让内存的引用计数减少了,就需要使用release或autorelease让内存的引用计数减少.在一段代码内,增加和减少的次数要相等.
- OC 内存管理(初级)
- OC内存管理初级
- OC 内存管理初级
- OC内存管理初级
- OC内存管理初级演练
- oc的内存管理初级
- OC内存管理的初级理解
- OC第九天:内存管理初级
- OC - 第九章 内存管理( 初级 )
- 爬爬爬之路:OC语言(九) 内存管理(初级)
- 进击的KFC:OC(第九天):内存管理初级
- iOS开发语言之OC 初级内存管理
- OC初级基础语法与内存管理MRC
- 内存管理初级
- 内存管理初级
- 内存管理初级
- 内存管理初级
- 09 内存管理初级
- Win7运行vc++6.0打开显示Microsoft(R) Developer Studio已停止工作解决方法
- 父子页面之间跨域通信的方法
- 快速排序——C++实现
- hdu 1533
- hdu 1853
- OC内存管理初级
- ADO.NET对数据库的访问
- hdu 3395
- matlab 函数说明--fspecial
- Ubuntu 上编译部署LAMP
- mysql binlog row格式查看
- hdu 2853
- 免费馅饼
- 使用DBInputFormat作为输入数据源