ARC(Automatic Reference Counting),就是代码中自动加入retain和release
ARC不像是Java的垃圾回收机制(运行时释放),ARC只是一种编译特性。
在ios5开始使用ARC机制,有了ARC机制之后我们便可以专注于我们的逻辑代码,而无需再分心去使用retain、release、autorelease、dealloc等去管理内存
在XCode5之前每次创建工程都会有是否选择使用ARC机制,在XCode5之后APPLE就强制的使用ARC。
如果我们想要设定单个【.m】文件的ARC设定,我们可以是做以下设定。
ARC的释放对象判断准则:
没有强指针指向对象时,就会释放对象,那么只要有强指针指向对象,对象就不会被释放;
*指针有强弱之分:强指针(__strong关键字修饰),所有的对象默认情况下都是强指针。
弱指针(__weak关键字修饰)
使用ARC时注意的几点:
retain、release、autorelease、dealloc有编码器自动插入,不能在代码中调用
dealloc可以重载,但是我们最后不能再调用[super dealloc]
强引用:(__strong:默认)
弱引用:(__weak)弱参照有一个特征,即当参数对象失去所有者之后,变量会被自动赋值nil