Xcode はクラッシュの原因となる行を表示しません 質問する

Xcode はクラッシュの原因となる行を表示しません 質問する

アプリがクラッシュするたびに、Xcode はクラッシュの原因となった行として main() 関数の UIApicationMain() 呼び出しを強調表示します。以前はそれが正常だった場合もありますが (セグメンテーション エラーなど)、私が対処しようとしているクラッシュは、コンソールに詳細な情報が記録された単純な SIGABRT です。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: Date)'

Xcode は古い SDK では行を正しく表示していましたが、Xcode 4.2 にアップグレードしてからは状況が変わりました。Xcode がクラッシュの原因を正確に把握している (または把握できる) ことは明らかですが、実際の行はまだ表示されていません。これに対する修正方法や回避策はありますか?

ベストアンサー1

また、すべての例外にブレークポイントが設定されていることを確認する必要があります。これにより、例外が発生している行で Xcode が停止します。[Xcode 4 の場合] 次の手順を実行します。

  1. Xcode の左側にあるプロジェクト ナビゲータで、ブレークポイント ナビゲータ (上部のボタン バーのほぼ右側。アイコンは太い右矢印のように見えます) をクリックします。

  2. ナビゲーターの下部にある「+」ボタンをクリックします。

  3. 「例外ブレークポイントの追加」をクリックします。

  4. 新しいブレークポイントが作成されます。必要に応じて構成する必要がありますが、その動作を微調整することもできます。

  5. プロジェクトを実行し、例外を再現します。

また、サードパーティのライブラリ/フレームワークにリンクしているとおっしゃっていました。それらのフレームワーク内で例外が発生している場合は、コードがコンパイルされていて、Xcode では例外の原因となった行を実際に表示できないため、困難な状況に陥ることになります。この場合、ライブラリを正しく使用していることが確実な場合は、それらのライブラリのメンテナーにバグ レポートを提出する必要があります。

おすすめ記事