Xcode 4.5PRとiOS 6beta 2を使用しています。
コードを変更しなかったため、タイトルに記載されている例外がアプリケーションでスローされました。
この例外の原因となった機能であるデバッグウィンドウを使用しましたが、
0x38dda960: Push {r4, r5, r6, r7, lr}
どうすれば問題を見つけることができますか?どうすれば修正できますか?
何も変更しなかった場合、これは単に現状のiOS 6ベータに関連しているだけかもしれません。
1):の同じコードをビルドするために選択したシミュレータである可能性があります
ソースコードを変更していない場合は、スキームがまだ最後に作業したのと同じシミュレータを指していることを確認してください。 (たとえば、モーダルビューコントローラー(presentModalViewController:
)、ただし条件付きでiPadのポップオーバーを使用し忘れると、これが発生する可能性があります。)
2)スタックトレースとコンソールが役に立たない場合:
時々、スタックの唯一のものはmain
とUIApplicationMain
であり、これはあなた自身のソースで何がうまくいかなかったかを追跡することを難しくします。これは、呼び出している、または呼び出しを引き起こしているネイティブフレームワークメソッドで何かが失敗している兆候である可能性があります。
メソッドまたは特定のオブジェクトがコンソールにリストされておらず、スタックトレースが自分のクラスのメソッドをポイントしていない場合は、例外がスローされるポイントにできるだけ近いところで実行を絞り込みます。暗闇の中でブレークポイントを選択するとき、私は二分探索アプローチを使用する傾向があります。ピボットポイントを選択し、実行順序を上下に移動し、必要に応じて新しい「中間」ポイントを選択します。
C++例外にブレークポイントを設定して、スローされている場所を見つけます。
これは単にライブラリがない場合に発生する可能性があります-私はMKMapViewで簡単なサンプルアプリを作成していて、プロジェクトにMapKit.frameworkを追加する前にこのエラーが発生しました。
このエラーが発生する理由...
.hファイルと.mファイルの一部のiboutlet変数の名前を変更した後、これらの変数のストーリーボードリンクでは変更しないと、このエラーが発生しました。リンクをやり直した後、すべてが再び正常に動作しました。これがあなたの一部に役立つことを願っています。
この例外は、さまざまな理由で発生する可能性があります。正確な根本原因を見つける最良の方法は、console
を調べることです。そこで、次のようなテキストが見つかります。
*** lorem ipsum lorem ipsum lorem ipsum
*** First throw call stack: (0x1d16012 0x16c3e7e 0xa4ef96 0x607704 0x6079a2 0x606876 0x617cb5 0x618beb 0x60a698 0x2b81df9 0x2b81ad0 0x1c8bbf5 0x1c8b962 0x1cbcbb6 0x1cbbf44 0x1cbbe1b 0x60617a 0x607ffc 0x1d1d 0x1c45) libc++abi.dylib: terminate called throwing an exception
ここにテキストlorem ipsum
前 First throw call stack
は、例外がスローされる理由を正確に示します。その問題を修正すれば、問題ありません。
これは私に起こり、「その他のリンカーフラグ」で-ObjCを設定すると消えました
オブジェクトi.s.oに制約を設定すると、ここで発生します。スーパービューに割り当てる
このエラーは、プロジェクトからストーリーボードを手動で削除し、ストーリーボードなしでビューコントローラーを再利用する場合によく見られます。 AppDelegateのウィンドウのルートビューコントローラーにビューコントローラーが追加されていることと、ビューコントローラーの初期化にnib名がないことを確認してください(ストーリーボードを削除するときに削除したため)-そして、最も重要なこととして、pListから行を削除します「メインストーリーボードファイルのベース名(iPad)」や「メインストーリーボードファイルのベース名(iPhone)」など、ストーリーボードファイルの存在をアプリケーションに通知するファイル。それらがなくなると、あなたのアプリはストーリーボードを探すのをやめて、ゴールデンレトリバーのようにゴールデンになります!
私はこれをかなりの間スタックしました、そして私はすべての例外にブレークポイントを 設定することによって例外の正確なトレーススタックを取得できることがわかりました
ユーザーがフレームワークをインポートするときに時間の問題が発生するため、アプリケーションのリソースフォルダーにある.pchファイルにそのフレームワークもインポートします。
Xcodeの開発者プレビューバージョン(4.5)を使用していて、リリースバージョン(4.3.3)を開く習慣がないことを確認し、プロジェクト設定を更新していない場合に実行できるiOSベータ版を確実に一致させるiOS 6ベータ版のアプリプロジェクト設定をiOS 6に更新した後、アプリはもう一方のiOS 5.xxデバイスでは実行できなくなります。