UINavigationController中的内存太高

时间:2011-05-03 07:51:21

标签: objective-c memory uinavigationcontroller

我有一个带有几个viewController和tableViewController的导航控制器。

我正在使用所有自动释放对象,问题是当我按下一个新视图并使用它时,来自Instrumets的内存增加了当我返回navigationController时释放的更大内存值。没有泄漏警告,当我返回到视图时,内存不会再次增加,就像是全部都在缓存中。

我也试过使用我拥有的对象,使用alloc ....并发布但故事是一样的。这是正常的吗?

1 个答案:

答案 0 :(得分:0)

UIViewControllers(或者确切地说,与它们相关联的views / resources / xib)很有趣,因为iOS将保留内存中的资源并根据需要卸载它们。这就是为什么dealloc方法似乎从未被调用过的原因。但是请不要担心,如果您进行了适当的内存管理,您的控制器和资源将根据需要释放 - 如果向您的应用程序发送了低内存警告,则所有隐藏或已弹出的视图都将被卸载并且dealloc'ed。

尝试再次测试您的应用程序,就像之前一样,但这次模拟内存使用率低(可以在Hardware菜单中的模拟器中完成),然后查看由于您的控制器被释放而导致内存使用率下降由系统