1

这对我来说有点神秘。我的应用程序使用的内存不多,但如果我将它放在后台并尽可能多地运行内存密集型应用程序,有时我的应用程序会在我尝试唤醒它时崩溃。

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

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)”而崩溃。

发生了什么事,我该如何解决?

4

2 回答 2

0

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

于 2010-10-21T17:47:37.057 回答
0

尝试在启用 Zombies 的情况下进行调试——看起来一条消息正在发送到已释放的对象。

于 2010-10-22T00:00:11.953 回答