这对我来说有点神秘。我的应用程序不使用太多内存,但如果我将它放在后台并运行尽可能多的内存密集型应用程序,当我尝试唤醒它时,我的应用程序偶尔会崩溃。
我查看了崩溃日志,这是我所看到的:
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
如您所见,我的 View Controller MailboxViewController
收到一条 didReceiveMemoryWarning
消息。由于该 View 实际上没有任何可以释放的内存,因此我只需调用 [super didReceiveMemoryWarning]
。
奇怪的是,我没有看到对 View Controller 的 viewDidUnload
的调用。它似乎在到达那里之前就因“EXC_BAD_ACCESS (SIGSEGV)”而崩溃。
这是怎么回事,我该如何解决?
最佳答案
我猜它在你的 Controller 卸载它的 View 时崩溃了,所以你的 viewDidUnload 永远不会被调用。你的观点只是一些简单的观点还是复杂的观点?我猜这可能与您的观点有关。
关于ios - 为什么我的 iPhone 应用程序在收到内存警告时会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3989950/