setFrame上的内存泄漏:

时间:2016-11-30 07:49:36

标签: ios memory-leaks categories xcode-instruments

我在project中测试了我的Instruments,最后我在memory leak的类别中找到了UIViewUIView+RSAdditions

The memory leak

以下代码:

- (void)setHeight:(CGFloat)height {
    CGRect frame = self.frame;
    frame.size.height = height;
    self.frame = frame;  // this code cause memory leak
}

我还搜索了我的project,并在此处找到了相同的方法名称:

The method name is the same

那些相同的方法会影响内存泄漏吗?我对memory leak的原因感到困惑。

1 个答案:

答案 0 :(得分:0)

根据我的经验。仪器并没有真正告诉你哪条线路会导致泄漏。它只是告诉您该行包含在导致泄漏的堆栈跟踪之一中。它只是帮助您更容易地跟踪泄漏,因为您将了解程序的流程。您必须根据仪器给您的堆栈跟踪在您自己的基础上跟踪它。

以下是来自仪器的堆栈跟踪的示例截图:

enter image description here

从我之前的调试中,这些是我在ARC下导致内存泄漏的错误

  • 设置对子对象中父级的强引用。这导致了 保留周期。
  • 在界面中设置对委托的强引用。
  • 忘记在之后进行免费桥接时释放对象 转让所有权。
  • 忘记设置对象的弱引用 过了一个街区。

我希望有帮助