iOS应用程序被终止问题

时间:2013-05-23 20:37:15

标签: ios exception logging kill terminate

我发现我的iOS 5应用程序有时会被意外退出,而且似乎不是由于未被捕获的异常,因为我已经在app委托类中实现了uncaughtExceptionHandler而我从那里得不到任何东西

如果是因为系统正在终止它,看起来你只能知道它是否处于后台状态:我已经阅读了Apple的文档中的以下行。

  

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

所以,如果我没错,你可以在这些情况下了解你的应用被系统终止的原因:

  • 应用程序处于后台状态
  • 触发了低内存事件

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

由于

1 个答案:

答案 0 :(得分:2)

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

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

#include <signal.h>

void signalHandler(int signal)
{
}

    // Somewhere in your start-up code.
    signal(SIGSEGV, signalHandler);