0

uncaughtExceptionHandleriOS 5 アプリが予期せず終了することがありますが、アプリ デリゲート クラスに実装したため、キャッチされなかった例外が原因ではないようです。

システムが終了していることが原因である場合は、バックグラウンド状態にある場合にのみ認識できるようです: Apple のドキュメントで次の行を読みました。

applicationWillTerminate:アプリが現在中断されている場合、このメソッドは呼び出されません。

したがって、私が間違っていなければ、次の場合にアプリがシステムによって終了される理由を知ることができます。

  • アプリはバックグラウンド状態でした
  • メモリ不足イベントがトリガーされました

問題を報告するために、アプリが終了する原因をさらに検出できますか? または、現在終了されていないが、ユーザーの操作なしでバックグラウンドに移動されている可能性はありますか?

ありがとう

4

1 に答える 1

2

NSSetUncaughtExceptionHandler()NSArrayObjective-C の例外 (存在しないアイテムにアクセスしようとするなど) のハンドラーをインストールします。たとえば、アプリが無効なポインター アドレスにアクセスしようとしたときに発生する、セグメンテーション違反、バス エラー、不正な命令などの下位レベルのシグナルをキャッチしません。

それらのハンドラーをインストールすることもできます。

#include <signal.h>

void signalHandler(int signal)
{
}

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