OC内存管理初级
2014-08-14 22:52
323 查看
一.内存管理的方式:
1.MRC (Manual Reference Count) 手动引用计数
2.ARC (Auto Reference Count) 自动引用计数
3.垃圾回收
二.内存管理机制
引用计数:
OC采用引用计数机制管理内存,当一个新的引用指向对象时,引用计数器就递增;当去掉一个引用时,引用计数器就递减.当引用计数到零时,该对象就释放占有的资源.
影响引用计数的方法:
1.+alloc 开辟内存空间,让被开辟的内存空间的引⽤用计数变为1,这是由0到1的过程
2.-retain 引⽤用计数加1
3.-copy 把某⼀内存区域的内容拷⻉一份,拷贝到新的内存空间⾥,被拷贝区域的引用计数不变,新的内存区域的引用计数加1
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让内存的引用计数减少.在一段代码内,增加和减少的次数要相等.
1.MRC (Manual Reference Count) 手动引用计数
2.ARC (Auto Reference Count) 自动引用计数
3.垃圾回收
二.内存管理机制
引用计数:
OC采用引用计数机制管理内存,当一个新的引用指向对象时,引用计数器就递增;当去掉一个引用时,引用计数器就递减.当引用计数到零时,该对象就释放占有的资源.
影响引用计数的方法:
1.+alloc 开辟内存空间,让被开辟的内存空间的引⽤用计数变为1,这是由0到1的过程
2.-retain 引⽤用计数加1
3.-copy 把某⼀内存区域的内容拷⻉一份,拷贝到新的内存空间⾥,被拷贝区域的引用计数不变,新的内存区域的引用计数加1
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初级基础语法与内存管理MRC
- iOS开发语言之OC 初级内存管理
- OC内存管理的初级理解
- OC - 第九章 内存管理( 初级 )
- OC 内存管理(初级)
- OC__内存管理初级
- 爬爬爬之路:OC语言(九) 内存管理(初级)
- OC第九天:内存管理初级
- 进击的KFC:OC(第九天):内存管理初级
- oc的内存管理初级
- OC学习 第十一章 协议 内存管理
- OC——内存管理
- 黑马程序员--OC--内存管理(二)
- 对于oc中得内存管理
- JAVA、OC的内存管理机制的本质
- 学习笔记12-OC 内存管理
- oc学习之旅:内存管理
- 5、内存管理(自定义MyArray)-OC
- oc学习之旅:内存管理,文件操作流程