一、ARC的判断准则:只要没有强指针指向对象,就会释放对象
二、ARC特点:
1>不允许使用release、retain、retainCount
2>允许重写dealloc,但是不允许调用[super dealloc]
3>@property的参数
* strong:成员变量是强指针(适用于OC对象类型)
* weak:成员变量是弱指针(适用于OC对象类型)
*assign:适用于非OC对象类型
补充:指针分两种
1)强指针:默认情况下,所有的指针都是强指针,关键词--__strong
2)弱指针:__weak
4>以前的retain改为用strong
1 #import <Foundation/Foundation.h> 2 3 @class Dog; 4 5 @interface Person : NSObject 6 7 @property (nonatomic, strong) Dog *dog; 8 9 @property (nonatomic, strong) NSString *name; // OC对象的成员变量用strong 10 11 @property (nonatomic, assign) int age; // 非OC对象的成员变量还是用assign 12 13 @end
三、ARC项目和非ARC项目
1>将非ARC项目利用Xcode转换成ARC项目的方法
选中项目后Edit--》Convert--》To ObjectiveC ARC...根据提示完成操作
2>ARC 项目中用到第三方框架或者别的,第三方非ARC,解决办法
告诉编译器,在编译第三方文件的时候按照非ARC的方式编译,具体操作如下:
3>相反,告诉编译器便以某个文件是按照ARC方式编译的话将-fno-objc-arc修改为-f-objc-arc即可
时间: 2024-10-12 14:56:15