iOS4.1后,默认为ARC模式,ARC实质上通过编译器特性实现的,只需简单修改下文件配置即可实现.
1.要切换至MRC需要选中当前Project,选择Build Settings,查询框内键入auto,查找到Objective-C Automatic Reference Counting ,将YES选成NO即可.见下图:
2.还可以灵活选择单一或几个文件设置成ARC模式,方法是选择targets,找到Compile Sources,选择所需文件,将flags ,键入-fobjc-arc即可.见下图:
3.还可以灵活选择单一或几个文件设置成MRC模式,方法是选择targets,找到Compile Sources,选择所需文件,将flags ,键入-fno-objc-arc即可.见下图:
内存管理原则:
1)谁创建(alloc,new),谁release或者autorelease;
2)谁retain,mutableCopy(copy),谁release或autorelease;
MRC:手动内存管理
出现新对象时,手动添加release或autorelease.
ARC工作原理:
ARC是Objective-C编译器的特性,而不是运行时特性或者垃圾回收机制,ARC所做的只不过是在代码编译时为你自动在合适的位置插入release或autorelease。
ARC的判断准则:
只要还有一个强指针变量指向对象,对象就会保持在内存中。
只要没有强指针指向对象,对象就会被释放。
注意:当使用ARC的时候,暂时忘记“引用计数器”,因为判断标准变了