A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© u37kl 中级黑马   /  2016-2-20 14:59  /  736 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

ARC机制:
1、指针分类:ARC机制下引入强指针和弱指针,分别用__strong和__weak修饰。
2、ARC的工作原理:ARC是编译时特性,即用户不再添加release和retain方法,而是由编译器代替我们在合适的位置添加,底层还是,其实还是MRC机制。
3、ARC的准则:只要没有强指针指向对象,就会被销毁,并且将指向对象的所有弱指针设为nil。
4、ARC下的循环引用问题:一个成员对象设为weak,一个成员对象设为strong。
5、ARC使用注意:
1>__weak Person *p = [Person new]; // 不能将创建后的对象使用弱指针指向,因为创建Person对象后,没有强指针指向,马上销毁,并且弱指针p被置为nil。
2>不能再使用release、retain、autorelease、retainCount方法。
3>可以重写dealloc方法,但是不能像MRC机制下手动调用该方法。
4>ARC机制下@property参数中没有retain,而是使用strong和weak来代替。

6、ARC机制下多对象的内存管理的释放顺序:
    @interface Person:NSObject
    @property(strong) Dog *dog;
    @end

    Person *p = [Person new];
    Dog *d = [Dog new];
    p.d = d;
    d = nil;
    p = nil;
// p=nil,Person对象没有强指针指向,被释放,dog变量被销毁,Dog对象没有强指针指向,被释放。

7、ARC机制下兼容MRC的东西
在使用MRC机制的文件后面,添加代码:-fno-objc-arc

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马