我正在开发一个基于导航的 iPhone 应用程序。每当应用程序退出时,导航控制器和窗口的保留计数为 3。有人可以解释一下如何克服这个问题吗?因此,不会调用 dealloc 方法。
问问题
261 次
3 回答
2
没有问题。
- 除非您看到明确的泄漏(通常在 Instruments 中),否则您应该尽量不要担心保留计数
- 您不必担心像窗口(可能还有导航控制器)这样的对象在应用程序退出时被释放;那时,您应用程序的所有内存都会消失。
于 2009-12-28T22:54:18.637 回答
0
但是没有一个 dealloc 方法,无论是 UIViewController 还是 Appdelegate 都没有被调用。视图控制器的 retaincount 值为 1。问题是,我将它们保留在 rootviewcontroller 中,因为它们会被一次又一次地使用,释放它们并再次分配它们会很糟糕。那么,我什么时候发布这些其他 UIViewControllers 呢?没有调用 rootviewcontroller 的 dealloc 方法。
于 2009-12-28T23:04:44.123 回答
0
您可以通过不依赖被调用的 dealloc 方法来克服这个问题。应用程序拆卸代码应该放在适当的应用程序方法中。一个对象dealloc
应该只做必要的事情来释放该对象的内存并履行其在内存管理合同中的职责。当您的应用程序终止时,它的所有内存都会被释放,因此不需要调用 dealloc。
于 2009-12-28T23:11:24.050 回答