ios - 为什么我的 iPhone 应用程序在收到内存警告时会崩溃?

标签 ios uiviewcontroller exc-bad-access didreceivememorywarning

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

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

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/

相关文章:

ios - 在 Xcode 6 Storyboard中制作 ScrollView

ios - Tableview 在 UIViewController 上不可见

ios - Swift 协议(protocol)定义了一个不适用于 UIViewController 的 init

ios - 关闭当前的 UIViewcontroller 并呈现一个新的 UiViewController

ios - Swift Firebase 持久化

ios - 地理围栏 iOS 6

iOS 启动图像状态栏显示在系统状态栏上

ios - 将 View Controller 的 View 作为 subview 添加到另一个 View Controller 的 View 后出现 EXC_BAD_ACCESS 错误?

swift - HMCharacteristicWriteAction 的 HomeKit updateTargetValue 崩溃

objective-c - 如何将 cfdictionaryref 存储到 NSDictionary 中