私のココアアプリケーションの読み込み中に、プログラムがメッセージEXC_BAD_ACCESSでクラッシュします。スタックトレースは役に立ちません。どのように私は問題を見つけることができますか?起動時に私のココアプログラムがEXC_BAD_ACCESSを取得するのはなぜですか?
答えて
あなたが正しく保持していないオブジェクトにアクセスしようとしているときに、そのオブジェクトの有効なコピーを指していないか、
これが考えられる理由の1つです。初期化されておらず、メッセージがnilで呼び出されているIBOutletオブジェクトがあります。スタックトレースを使用して、エラーを見つけるためにあなたのコードをステップ実行する必要があります役に立たないので
#0 0x90a594c7 in objc_msgSend
#1 0xbffff7b8 in ??
#2 0x932899d8 in loadNib
#3 0x932893d9 in +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:]
#4 0x9328903a in +[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:]
#5 0x93288f7c in +[NSBundle(NSNibLoading) loadNibNamed:owner:]
#6 0x93288cc3 in NSApplicationMain
#7 0x00009f80 in main at main.mm:17
:スタックトレースは次のようになります。何らかの理由で実行の早い段階でブレークポイントを設定できない場合は、Debugger()をいくつか挿入してみてください。デバッガに侵入するコール。
追加する:元に戻すことの失敗の主な理由は、「自己復帰」を忘れることです。カスタムクラスの初めからそれは多くの痛い:(
コンソールログ(アプリケーション/ユーティリティ/ Console.app)をチェックします。プログラムがクラッシュしたときにブレークポイントを早期に置いて、起動時にオブジェクトを分析してgdbでpoとprintを使用することをお勧めします。起動時に初期設定に何か問題がありますが、クラッシュする前に役立つエラーメッセージを書き出すことがよくあります。
これは通常、メモリ管理エラーを示しています。
すべてのアウトレットの宣言は、ベストプラクティスに従っていることを確認してください:
@interface MyClass : MySuperclass {
UIClass *myOutlet;
}
@property (nonatomic, retain) IBOutlet UIClass *myOutlet;
@end
このフォーマットを使用すると、任意のスーパークラスを持つ任意のプラットフォーム上のメモリ管理権を取得することを保証します。
チェック任意のawakeFromNib
方法はないの上に放出など
オブジェクトXCodeの4 EXC_BAD_ACCESSの例外を診断するための最も効果的な方法で、古いスレッドへの新しい答えは...楽器を使用することです、あなたがしていることを保証するために、あなたのアプリをプロファイルする(XCodeからProduct/Profileをクリックしてゾンビを選択する)。これは、割り当てられていないオブジェクトに送信されたメッセージを識別するのに役立ちます。
- 1. Xcode 4.3にアップデートした後、起動時にEXC_BAD_ACCESSを取得
- 2. 起動時にweb2pyがクラッシュするのはなぜですか?
- 3. IE7が起動時にすべてのファビコンを取得するのはなぜですか?
- 4. intをキャストした後にEXC_BAD_ACCESSを取得するのはなぜですか?
- 5. 2回目の起動時にアプリがクラッシュするのはなぜですか?
- 6. なぜこの単純なコードがEXC_BAD_ACCESSを引き起こすのですか?
- 7. なぜIronPythonの起動時間が遅いのですか?
- 8. 私のカスタムContentType機能が起動時にエラーになるのはなぜですか?
- 9. スレッドが同時に起動しないのはなぜですか? Java
- 10. スプラッシュ画面がスプラッシュ画面が起動するための時間がかかり、なぜ私のアプリケーションでは
- 11. プログラムの起動時にBPLのバージョンを取得する
- 12. divは、なぜボタンが私のlogout.phpを起動しないのですか?
- 13. WPFでMouseLeftButtonUpが起動しないのはなぜですか?
- 14. Qt現在のアプリケーションの起動時間を取得する
- 15. プログラムでC++(ウィンドウ)でシステム起動時間を取得する
- 16. これらのC++関数でEXC_BAD_ACCESSを取得するのはなぜですか?
- 17. なぜ私はコマンドラインからtomcatを起動できないのですか?
- 18. なぜ私はIE8でquirksモードを起動しますか?
- 19. conhost.exeが起動しているのはなぜですか?
- 20. 最初の起動時にSQLデータベースを作成し、次の起動時にデータベースデータを取得します
- 21. なぜ私のajaxSuccess jQueryイベントがGreasemonkeyで起動されないのですか?
- 22. iOS:起動時に「ロケーションサービスを有効にする」アラートが2回表示されるのはなぜですか?
- 23. Windowsサービスが自動ではない再起動時に起動する
- 24. EXC_BAD_ACCESSを取得
- 25. Railsが起動時にすべての依存関係(gem)をプリロードするのはなぜですか?
- 26. 起動時のすべての重要なデータを取得する
- 27. RowUpdatedはなぜRowUpdatedが起動しないのですか?
- 28. SQL Serverエージェントが起動しないのはなぜですか?
- 29. ValueConverterが起動しないのはなぜですか?
- 30. fbAsyncInitが起動しないのはなぜですか?
nilへのメッセージは、Objective-Cではエラーではありません。 – mmalc