在 Objective C 中处理类似 SIGSEGV 的信号

Ale*_*mad 2 memory objective-c ios

我的应用程序中遇到 SIGSEGV 异常,并且我的应用程序正在崩溃。我想处理这些信号,以便我的应用程序在运行时不会崩溃,而是处理这些异常,以便应用程序顺利运行。

我在我的应用程序中使用 ARC,并且我也不处理release或retain语句,现在我很难追踪为什么应用程序正在访问它无法访问或无效内存的内存。

此外,应用程序一直崩溃,这种情况很少发生,大约在 20 个会话中,它只发生 1 到 2 次,但问题确实存在,而且非常令人恼火。

Gab*_*lla 5

SIGSEGV是一个分段错误。您的应用程序在获得后就无法顺利运行。实际上,您的应用程序根本无法继续运行。

您可以使用信号处理程序来处理信号,如下所示

// register a signal handler
signal(SIGSEGV, SignalHandler);

static void SignalHandler (int signo) {
     //...
}
Run Code Online (Sandbox Code Playgroud)

但这并不能阻止您的应用程序崩溃。