EXC_BAD_ACCESS が発生する理由を突き止めようとして、以前にいくつかの質問を投稿しました。また、少しデバッグを行いました。
ここを参照してください: iPhone アプリのデバッグのヘルプ - EXC_BAD_ACCESS
と:
それで、何が起こっているのかを発見したと思います。
私のログから、私はこれを得ています:
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000f
Crashed Thread: 0
Thread 0 Crashed:
0 libobjc.A.dylib 0x00003ebc objc_msgSend + 20
1 MyApp 0x0000378a -[PictureView clearPage] (PictureView.m:79)
最初は、「clearPage」関数内で解放されたオブジェクトがメッセージを送信されていることが問題だと思っていましたが、友人と話しているうちに、PictureView オブジェクト自体が既に解放されている可能性があると信じるようになりました。
これは私のログ出力によって確認されます:
Fri Jan 8 20:28:32 unknown MyApp[2224] <Warning>: Picture View Unloaded
Fri Jan 8 20:28:32 unknown MyApp[2224] <Warning>: Memory warning from Picture view
Fri Jan 8 20:28:34 unknown MyApp[2224] <Warning>: Scaling image
Fri Jan 8 20:28:36 unknown MyApp[2224] <Warning>: Attempting to save image to disk
Fri Jan 8 20:28:37 unknown MyApp[2224] <Warning>: Saved file to: /var/mobile/Applications/065C0D37-95C1-41D4-98F0-16A3555682CD/Documents/MyImage1.jpg
Fri Jan 8 20:28:37 unknown MyApp[2224] <Warning>: Clearing page
Fri Jan 8 20:28:40 unknown ReportCrash[2225] <Notice>: Formulating crash report for process MyApp[2224]
Fri Jan 8 20:28:41 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.yourcompany.MyApp[0xb8e1]) Job appears to have crashed: Bus error
だから、私が使用しているビューは、イメージピッカーによって引き起こされたメモリ警告を受け取った後、アンロードされていると思います...
そして私の質問は、どうすればこれが起こらないようにできますか? PictureView の clearPage メソッドを呼び出す必要があることは明らかですが、アンロードされている場合はできません。