保留导航控制器和窗口的数量为3

时间:2009-12-28 22:50:02

标签: iphone objective-c memory-management uinavigationcontroller retain

我正在开发一个基于导航的iPhone应用程序。每当应用程序退出时,导航控制器和窗口的保留计数为3.有人可以解释我如何克服这个问题吗?因此,dealloc方法不会被调用。

3 个答案:

答案 0 :(得分:2)

没有问题。

  • 你应该尽量不关心自己的保留计数,除非你看到明确的泄漏(通常在仪器中)
  • 您无需担心窗口(可能还有导航控制器)等对象在应用程序退出时被释放;你的所有应用程序的内存都将在那时消失。

答案 1 :(得分:0)

但是没有一个dealloc方法,无论是UIViewController还是Appdelegate都没有被调用。视图控制器的retaincount值是1.问题是,我将它们保留在rootviewcontroller中,因为它们将被一次又一次地使用,并且释放它们并再次分配它们将是蹩脚的。那么,我什么时候发布这些其他UIViewControllers?不调用rootviewcontroller的dealloc方法。

答案 2 :(得分:0)

您可以通过不依赖于调用的dealloc方法来克服此问题。应用程序拆解代码应该采用适当的应用程序方法。对象的dealloc应该只需要释放该对象的内存并在内存管理合同中履行其职责。当你的应用程序终止时,它的所有内存都被释放,所以不需要调用dealloc。