美文网首页
iOS知识点-5.什么是ARC?

iOS知识点-5.什么是ARC?

作者: 萌小奇 | 来源:发表于2018-12-05 09:56 被阅读10次
    Objective-C Basics
    1. c

    循环引用是指2个或以上对象互相强引用,导致所有对象无法释放的现象。这是内存泄漏的一种情况。举个例子:

    * class Father
    * 
    * @interface Father: NSObject
    * @property (strong, nonatomic) Son *son;
    * 
    * @end
    * 
    * class Son
    * 
    * @interface Son: NSObject
    * @property (strong, nonatomic) Father *father; 
    * 
    * @end
    

    上述代码有两个类,分别为爸爸和儿子。爸爸对儿子强引用,儿子对爸爸强引用。这样释放儿子必须先释放爸爸,要释放爸爸必须先释放儿子。如此一来,两个对象都无法释放。

    解决方法是将Father中的Son对象属性从strong改为weak。

    内存泄漏可以用Xcode中的Debug Memory Graph去检查,同时中Xcode也会在runtime中自动汇报内存泄漏的问题。

    上一题 目录 下一题

    相关文章

      网友评论

          本文标题:iOS知识点-5.什么是ARC?

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