Objective-C内存管理机制
Posted 小兔无情
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Objective-C内存管理机制相关的知识,希望对你有一定的参考价值。
Objective-C内存管理机制分成两种:MRC和ARC
(1)MRC (Manual Reference Counting)
- 当前系统默认都是采用ARC,如果想使用MRC需要在build settings里把Objective-C Automatic Reference Counting设置成No。
- 通过类对象的retainCount属性可以查询该类的引用计数
- 通过类对象的retain方法可以将引用计数加一
- 通过类对象的release方法可以将引用计数减一
- 当引用计数为0时,系统自动调用dealloc析构函数,不要在代码里显式调用
- autorelease和@autoreleasepool配合使用,当对象超出@autoreleasepool范围的时候,引用计数会被减一。
@autoreleasepool{
//如果加上[A retain] 就不会被释放
//[A retain]
A* a = [ [ [A alloc] init] autorelease];
}
(2)ARC(Automatic Reference Counting)
- 在ARC模式下,autorelease,retain,release,retainCount
- 在ARC模式下,在delloc函数中不能写[super delloc]
- ARC由编译器添加retain和release
以上是关于Objective-C内存管理机制的主要内容,如果未能解决你的问题,请参考以下文章