iphone - iOS模拟内存警告问题

标签 iphone ios memory warnings

当我触发模拟内存警告时,我看到了一些意外行为,我希望有人能解释一下。

我的应用程序包含一个 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/

相关文章:

iphone - iOS 应用程序的 Facebook SSO 问题

python嵌套函数内存泄漏?

html - 在 iOS 上字体太小但在 Android 和桌面上没问题?

ios - 使用 Spritebuilder 建立内存(未检测到泄漏)

Powershell 作业内存消耗问题

iphone - iPhone 5、iOS 6 模拟器上的无响应屏幕

iphone - iOS:如何在 iPad 和 iPhone 版本的应用程序之间共享文档?

javascript - 使用 UIAutomation javascript 进行 map View 测试

ios - 苹果应用商店的应用商店浏览量和应用单元数是什么意思?

ios - 将图像转换为帧时占用大量内存