首页 > 代码库 > Objective-C:08_内存管理_ARC编译器特性
Objective-C:08_内存管理_ARC编译器特性
自动生成代码,不是垃圾回收
ARC的判断准则:
只要没有强指针指向对象,就会释放对象
1、ARC特点
-》不允许调用release、retain、retainCount
-》允许重写dealloc,但是不允许调用[super dealloc]
-》@property的参数
strong:成员变量是强指针(适用于OC对象类型)
weak :成员变量是弱指针(适用于OC对象类型)
assign:基本数据类型
-》以前的retain改用strong,其他一次不变
指针分两种:
强指针:默认情况下,所有的指针都是强指针(_ _ strong 默认可以不写)两个下划线
弱指针: (_ _weak)
__weak Person *p = [[Person alloc] init];
weak的使用场景:
循环引用。
当发生循环引用的时候(人有只狗,狗有主人),这个时候需要一个使用strong一个使用weak
当项目使用ARC之后,如果某个文件不想使用ARC,那么就在Build Phases→Comlile Sources中双击这个文件
在弹出的框中填写:-fno-objc-arc
如果项目不是ARC,其中的某个文件想使用ARC,那么就在Build Phases→Comlile Sources中双击这个文件
在弹出的框中填写:-f-objc-arc
Objective-C:08_内存管理_ARC编译器特性
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。