黑马程序员技术交流社区

标题: 关于对OC中ARC机制的小结 [打印本页]

作者: 陌生爱人    时间: 2014-10-11 08:36
标题: 关于对OC中ARC机制的小结
本帖最后由 陌生爱人 于 2014-10-11 08:38 编辑

ARC 全称:Automatic Reference Counting

OC中很重要的一部分就是内存管理,在IOS前期的程序员最头疼的就是内存管理代码,自从有了ARC机制以后可以自动生成内存管理代码,非常实用

使用ARC 只需要在建立一个新的项目的时候把 下面的Use ARC 的√打上

Xcode5以后都会默认建议开发者使用ARC机制

新的项目中如果有部分文件不想使用ARC就 在Build Phases中找到那个文件 后面修改成-fno-objc-arc

就得项目中如果有部分文件想使用ARC就 Build Phases中找到那个文件 后面修改成-f-objc-arc

在使用了ARC开发程序中不能再出现release或者autorelease 否则就报错

如果想把整个就项目直接转化成ARC就 点Edit -》Refactor-》Counvert to OC ARC

1.ARC特点

1> 不允许调用release、retain、retainCount
2> 允许重写dealloc,但是不允许调用[super dealloc]
3> ARC的判断准则:只要没有强指针指向对象,就会释放对象

2 @property的参数

* strong :成员变量是强指针(适用于OC对象类型)
* weak :成员变量是弱指针(适用于OC对象类型)
* assign : 适用于非OC对象类型
* 以前的retain改为用strong

指针分2种:

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

// *错误写法(没有意义的写法)

__weak Person *p = [[Person alloc] init];

// *循环引用时的解决方法

一端改成strong 一端改成retain







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2