推送和弹出增加实时字节

时间:2011-08-26 20:13:45

标签: iphone uiviewcontroller byte live

作为测试我一次又一次地推动并弹出相同的视图......我将进入下一个屏幕并反复点击...我可以看到实时字节不断增加...

虽然应用程序中的其他位置我在显示表视图的2个屏幕之间出现,但是实时字节增加和减少相同的数量(第一次执行)。

那么我需要检查以了解发生了什么...在播放20分钟后,通常应用程序崩溃 - 请注意,任何时候都没有内存泄漏。

在我推送和弹出的第一个视图中,第二个屏幕有一个图片和一个文本字段。我需要这些特别的东西吗? 我还注意到我没有默认函数viewWillDisappear和viewDidDisappear ...我需要这些吗?这是强制性的吗?添加它们并没有改变任何东西......所以我需要在它们中添加一些特别的东西......

非常感谢任何帮助

干杯, geebee

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

在您正在推动的控制器的-dealloc方法中放置一个断点,然后弹出以查看它是否会触发。如果没有,你会在某个地方保留对它的引用。这可能由于多种原因而发生。以下是一些可能性:

  1. 前面的视图控制器可能会保留对后继者的引用。这是不必要的,应该避免(UINavigationController将视图控制器保留在其堆栈中)。

  2. 您可能通过保留对保留视图控制器的对象的引用,在代码中引入了保留周期。如果您使用块并且不小心遵循内存管理规则,则很容易发生这种情况。

  3. 如果你做得对,你的视图控制器应该在从导航控制器弹出后解除分配。

答案 2 :(得分:0)

您可以使用Instruments的快照分析确切了解一段时间内的变化。

1)使用分配模板的配置文件

2)运行应用程序(导航)

3)点击“标记堆”按钮

4)运行应用程序(导航)

5)点击“标记堆”按钮

然后查看快照分析的结果。

当您的视图被卸载时,您应该将IBOutlet置零,释放您可以轻松重建的内容,并释放可能被视为大量分配的内容。