Objective-C 内存管理方式 二

来源:互联网 发布:淘宝宝贝展现量如何刷 编辑:程序博客网 时间:2024/05/22 01:59

ARC (Automatic Reference Counting)  自动引用计数

使用ARC,编译器会自动添加retain、release、对引用计数做加减。


ARC黄金法则:

1、如果没有一个指针指向对象,那么此对象从内存中销毁

2、只要还有一个指针指向对象,那么对象就保存在内存中


ARC也存在内存泄露!!!!!


ARC中的重写dealloc方法:

- (void) dealloc {

//[super dealloc];  ARC中不用调用

_dog = nil;//相当于MRR中的[_dog release];

}


ARC与MRR的区别:

1、ARC中,dealloc方法中不允许调用[super dealloc];

2、ARC中,不允许使用retaincount属性,打印引用计数;

3、ARC中,不允许使用retain、release、autorelease,copy可以使用;

4、ARC中,不能使用NSAutoreleasePool,需要使用@autoreleasepool{}

5、ARC不再允许结构体和枚举中声明OC的对象作为成员变量;

6、ARC在switch-case语句中定义指针变量,需要添加其作用域。


ARC、非ARC的使用标记:

project settings---> Build Phase

-fno - objc - arc    标记源代码文件使用MRR

-fobjc - arc  标记文件使用ARC(默认不写)

0 0
原创粉丝点击