这对我来说有点神秘。我的应用程序没有使用太多的内存,但是如果我把它放在后台并运行尽可能多的内存密集型应用程序,偶尔我的应用程序会在我尝试将其唤醒时崩溃。
我查看了崩溃日志,这就是我所看到的:
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 :(得分:0)
我猜它在你的控制器卸载它的视图时崩溃了,所以你的viewDidUnload永远不会被调用。您的视图只是一些简单的视图还是复杂的视图?我的猜测是它可能与你的观点有关。
答案 1 :(得分:0)
尝试使用Zombies进行调试 - 看起来正在将消息发送到解除分配的对象。