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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丶有果灬 中级黑马   /  2014-12-5 12:37  /  746 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

   ARC——基本原理
   之前用到retain返回对象的时候,调用alloc就会用release,现在我们用到ARC(编译器特性)
   ARC的判断准则:
   只要没有强指针指向对象,就会释放对象。
   指针分2种:
   1)强指针:默认情况下,所有的指针都是强指针,_strong
   2)弱指针:_weak 弱 Person *p2 = p;
                   _strong 强(默认)
   ARC的特点
   1)不允许使用release、retain、retainCount
   2)允许重写dealloc,但是不允许调用[super dealloc];
   3)@property的参数
   *strong:相当于原来的retain(适用于oc对象类型)  将成员变量改为强指针
   *weak:相当于原来的assign(适用于oc对象类型)  将成员变量改为弱指针
   *assign:适用于非oc对象类型
   
   ARC转换
   1)将文件retain改成strong、release删掉,即可。
   2)refaceoc(重构)-->ARC   其中预览自动去解决一些删除一些release操作,和将retain改为assign操作。
   那么在Xcode里面如何不使用ARC操作呢?
   打开工程Build Phases里面的.m文件。打-fno-objc-arc去不使用ARC操作
   当两端循环引用的时候,解决方案:
   1)ARC
   一端用strong,另一端用weak
   2)非ARC
   一端用retain,另一端用assign

0 个回复

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