OC之ARC机制

 

/*

 ARC的判断准则:只要没有强指针指向对象,就会释放对象;反之就不会

 

 指针分2种:

  1> 强指针:默认情况下,所有的指针都是强指针  __strong

  2> 弱指针:  __weak   当弱指针所指的对象被销毁后,该弱指针会自动被清空,变为空指针

       没有意义的写法,因为这样写,Person对象p刚创建就会被销毁

       __weak Person *p = [[Person alloc] init];    // 这行代码后,编译器会自动加上 p = nil;

 

 ARC特点:

  1> 不允许调用releaseautoreleaseretainretainCount

  2> 允许重写dealloc方法,但是不允许在重写的dealloc里面调用[super dealloc];

  3> @property参数

      * strong 成员变量是强指针,相当于原来的retain(适用于OC对象类型)

      * weak   成员变量是弱指针(适用于OC对象类型)

      * assign (适用于非OC对象类型)

      ***  以前的retain改为strong

 

    

     当两端对象循环引用的解决方案:

 ARC:  1端用strong,1端用weak

 

 ARC:  1端用retain,1端用assign

 */

 

Xcode的ARC功能转换(包括项目是ARC,但是某个类不是;或者相反)

视频27

posted on 2015-04-08 09:55  我是一匹小黑马  阅读(119)  评论(0编辑  收藏  举报