当我触发模拟内存警告时,我看到了一些意外行为,我希望有人能解释一下。
我的应用程序包含一个 UITabBarController 和一个 UINavigationController。我的所有 UI 都是以编程方式创建的,没有从 NIB 加载任何内容。在我的委托(delegate)函数 applicationDidFinishLaunching 中,我创建了选项卡 Controller 、导航 Controller 和五个 View Controller 。当我触发内存警告时,主视图变为完全白色,将导航留在顶部,将选项卡留在底部。当我更改标签时,新标签会正确地重新加载它的数据,因为正确调用了 loadView,但是导航 Controller 消失了。
这让我感到困惑有两个原因。 1)为什么主视图被卸载了?我不认为 viewDidUnload 会在事件 View Controller 上被调用。 2) 为什么我的导航 Controller 消失了,但只有在更改标签后才会消失。这是一个真正的谜。
谢谢。
最佳答案
这听起来像是内存问题。您可能需要保留
您为 UITabBarController 和 UINavigationController 创建的对象。
在卸载方法中,您需要释放它们。
Apple 有一本优秀的手册解释了 Objective C 中的内存管理:"Memory Management Programming Guide “。非常清楚和有帮助。
关于iphone - iOS模拟内存警告问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4860655/