美文网首页
iOS中的ARC机制

iOS中的ARC机制

作者: 王蓝胖 | 来源:发表于2016-02-23 15:35 被阅读272次

    Automatic Reference Counting,自动引用计数,iOS5引入,用以解决手动内存管理问题。

    ARC的特点

    ARC是编译器(时)特性,而不是运行时特性,更不是垃圾回收器(GC)。

    Automatic Reference Counting (ARC) is a compiler-level feature that simplifies the process of managing object lifetimes (memory management) in Cocoa applications.

    在对象被创建时 retain count +1,在对象被release时 retain count -1.当retain count 为0 时,销毁对象。程序中加入autoreleasepool的对象会由系统自动加上autorelease方法,如果该对象引用计数为0,则销毁。

    ARC的修饰符

    ARC提供了4种修饰符:

    __strong, __weak, __autoreleasing, __unsafe_unretained
    

    assign适用于基本数据类型,weak是适用于NSObject对象,并且是一个弱引用。assign其实也可以用来修饰对象,那么我们为什么不用它呢?因为被assign修饰的对象在释放之后,指针的地址还是存在的,也就是说指针并没有被置为nil。如果在后续的内存分配中,刚好分到了这块地址,程序就会崩溃掉。而weak修饰的对象在释放之后,指针地址会被置为nil。所以现在一般弱引用就是用weak。
    strong是强引用,被引用一次引用计数会+1,当引用计数为0,销毁对象。

    相关文章

      网友评论

          本文标题:iOS中的ARC机制

          本文链接:https://www.haomeiwen.com/subject/hrwbkttx.html