OC基础--ARC的基本使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC基础--ARC的基本使用相关的知识,希望对你有一定的参考价值。

一、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即可

以上是关于OC基础--ARC的基本使用的主要内容,如果未能解决你的问题,请参考以下文章

ARC下带CF前缀的类型与OC类型转换

oc56--ARC多个对象的内存管理

OC 内存管理:MRC与ARC

OC内存管理-ARC

OC加强之ARC

[OC]MRC和ARC