2

我的应用程序的内存消耗有问题我希望你能帮我解决这个问题,我有一个导航控制器,可能有 10 个控制器可以向前或向后导航,我正在使用 Instruments 来检查内存分配(也使用了mtouch profiler),当我向前导航(第一次)时,应用程序消耗的内存显然增加了..但是当我点击导航控制器的标准后退按钮时,内存仍然是相同的数量,如果我继续前进,最糟糕的是内存再次增加更多(即:homeVC 10mb,VC1 = 10.5mb,回到 homeVC = 10.5 mb,转发到 VC1 = 11mb),是的,当我仍在浏览 VC 时,内存正在增加。在这种情况下,我有以下问题:

  • 导航控制器的标准后退按钮上的应用程序的行为是什么(它执行 PopViewControllerAnimated?)。
  • PopViewControllerAnimated 和 navController 的其他 Pop 方法应该释放消失的 VC 消耗的内存吗?
  • 如果 navcontrollers 的 Pop 方法没有释放应用程序的内存,我应该什么时候处理我消失的 VC 以避免消耗这么多内存?(我想知道在单点触控应用程序中管理内存的最佳工作,也许使用 DidReceiveMemoryWarning 方法?或者还有其他地方可以管理我的应用程序内存的释放)。

提前感谢您的所有帮助。

4

2 回答 2

1

这听起来与此错误非常相似:https ://bugzilla.xamarin.com/show_bug.cgi?id=1889

您可以通过偶尔获取导航控制器的 ViewControllers 属性来解决它。

于 2012-04-20T21:56:40.243 回答
0

您可以发布您在分配和推送您的 VC 时使用的代码吗?

我猜正在发生的事情是你在分配它之后没有释放它,所以当 NavigationController 在你按下返回按钮时释放它时,保留计数仍然是 +1。

于 2012-04-20T21:58:38.773 回答