【发布时间】:2014-02-19 08:36:11
【问题描述】:
我正在 UINavigationController 中推送和弹出 ViewController。
我正在跟踪我的应用程序的内存消耗。
在推送新的 viewController 时,内存消耗逐渐增加,但是当我使用 [self.navigationController popViewControllerAnimated:NO]; 弹出相同的 ViewController 时,内存消耗并没有减少而是保持不变。
用户可以多次推送和弹出特定的viewController,这会导致应用程序在RAM中的高内存消耗。
我应该如何优化我的内存消耗?
【问题讨论】:
-
viewController 的
dealloc弹出后是否会被调用。 -
@KudoCC 我没查过让我先查一下
-
您的 viewController 是否在任何其他类中被称为委托,并且委托具有强属性?
-
您是否将导航控制器存储在任何地方?在 NSArray 或 NSDictionary 或任何其他集合中。似乎你一直在强烈地引用它们。
-
因为数组会保留那些视图控制器,即使你弹出它们它们也不会被释放。当您从导航控制器弹出视图控制器时,尝试从数组中删除视图控制器。看看这是否会减少您的内存消耗。
标签: ios memory-management memory-leaks uinavigationcontroller