0

我发现我的 iOS 5 应用程序有时会出乎意料地安静下来,这似乎不是由于未捕获的异常,因为我已经uncaughtExceptionHandler在应用程序委托类中实现了,但我从那里一无所获。

如果是因为系统正在终止它,那么您似乎只有在它处于后台状态时才能意识到这一点:我已阅读 Apple 文档中的以下行。

applicationWillTerminate:如果您的应用当前已暂停,则不会调用该方法。

所以,如果我没记错的话,你可以得到你的应用程序在这些情况下被系统终止的原因:

  • 应用程序处于后台状态
  • 内存不足事件被触发

我是否可以检测更多导致应用程序被终止的原因,以便报告问题?或者它是否可能当前没有被终止,而是在没有用户交互的情况下移动到后台?

谢谢

4

1 回答 1

2

NSSetUncaughtExceptionHandler()为 Objective-C 异常安装一个处理程序(例如,试图访问一个NSArray不存在的项目)。它不会捕获较低级别的信号,例如分段错误、总线错误、非法指令……,例如当您的应用程序尝试访问无效指针地址时发生的事情。

您还可以为这些安装处理程序:

#include <signal.h>

void signalHandler(int signal)
{
}

    // Somewhere in your start-up code.
    signal(SIGSEGV, signalHandler);
于 2013-05-23T21:04:36.730 回答