我发现我的iOS 5应用程序有时会被意外退出,而且似乎不是由于未被捕获的异常,因为我已经在app委托类中实现了uncaughtExceptionHandler
而我从那里得不到任何东西
如果是因为系统正在终止它,看起来你只能知道它是否处于后台状态:我已经阅读了Apple的文档中的以下行。
如果您的应用目前暂停,则不会调用
applicationWillTerminate:
方法。
所以,如果我没错,你可以在这些情况下了解你的应用被系统终止的原因:
为了报告问题,我是否可以检测到应用程序终止原因的更多原因?或者它是否可能当前没有被终止,而是在没有用户交互的情况下移到后台?
由于
答案 0 :(得分:2)
NSSetUncaughtExceptionHandler()
为Objective-C异常安装处理程序(例如,尝试访问不存在的NSArray
项)。它不会捕获较低级别的信号,如分段错误,总线错误,非法指令......,例如当您的应用程序尝试访问无效指针地址时发生的事情。
您还可以为这些安装处理程序:
#include <signal.h>
void signalHandler(int signal)
{
}
// Somewhere in your start-up code.
signal(SIGSEGV, signalHandler);