1

这对我来说是个谜。我的应用程序没有使用太多的内存,但是如果我将它放在后台并尽可能多地运行内存密集型应用程序,偶尔我的应用程序会在我尝试唤醒时崩溃。为什么我的iPhone应用程序在收到内存警告时会崩溃?

我看了崩溃日志,这是我所看到的:

0 libobjc.A.dylib      0x000027da objc_msgSend + 18 
1 UIKit        0x0008cab4 -[UIViewController unloadViewForced:] + 132 
2 UIKit        0x0008ca22 -[UIViewController unloadViewIfReloadable] + 10 
3 UIKit        0x0008c9f2 -[UIViewController purgeMemoryForReason:] + 34 
4 UIKit        0x0008c896 -[UIViewController didReceiveMemoryWarning] + 10 
5 My Application      0x00023340 -[MailboxViewController didReceiveMemoryWarning] (MailboxViewController.m:359) 
6 UIKit        0x0008c880 -[UIViewController _didReceiveMemoryWarning:] + 8 

正如你我可以看到,我的视图控制器MailboxViewController得到了didReceiveMemoryWarning消息。由于这个观点没有任何记忆,它可以真正释放,我只是打电话给[super didReceiveMemoryWarning]

奇怪的是,我没有看到一个调用我的视图控制器的viewDidUnload。它甚至在它到达那里之前似乎与“EXC_BAD_ACCESS(SIGSEGV)”一起崩溃。

这是怎么回事,我该如何解决?

回答

0

我想它在你的控制器卸载它的视图时崩溃了,所以你的viewDidUnload永远不会被调用。你的观点只是一些普通的观点或复杂的观点?我的猜测是,这可能与你的观点有关。

+0

我真的不能控制操作系统卸载我的视图。这并不奇怪。它是一个表视图,还包含数组,字符串,日期格式化程序,托管对象,自定义容器对象,微调控件和三个其他视图控制器。我看不出为什么它会在卸载时遇到麻烦。 – Mike 2010-10-21 17:58:00

0

尝试使用Zombies启用调试 - 它看起来像一个消息正在发送到一个释放对象。

相关问题