iOS popViewController没有释放内存和dealloc没有被调用

时间:2014-02-11 03:21:54

标签: ios objective-c memory-management automatic-ref-counting dealloc

我在ARC下的内存管理方面遇到了一些问题。当我在我的应用程序中使用popViewController时,它们都没有释放内存,有时候不会调用viewcontroller的dealloc。即使在调用dealloc时,内存仍然没有被释放。所以我问什么会占用内存甚至viewController的dealloc方法被调用?什么会导致dealloc不被称为?很少有动画,代表?还有什么吗?

2 个答案:

答案 0 :(得分:5)

如果未调用dealloc,则某些对象具有对视图控制器的强引用。您需要检查代码并寻找强大的参考周期。

当你按下视图时,不要指望你的记忆力会减少。 iOS会在内存中缓存大量内容以提高性能,例如图像,字符串文字等。只需确保没有挂在对象上超过你需要的时间。

答案 1 :(得分:2)

Xcode 9提供了一个很好的工具来查找这类问题。它被称为:" Debug Memory Graph "。 使用它你可以按类别找到你泄露的对象,你可以清楚地看到谁拥有它的强引用,通过释放它来解决你的问题。

See more info about how to use it