首页 > 代码库 > 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编译器特性