これは私にとって一種の謎です。私のアプリケーションはあまりメモリを使用しませんが、バックグラウンドに置いてメモリを大量に消費するアプリケーションをできるだけ多く実行すると、アプリケーションを起動しようとするとクラッシュすることがあります。
クラッシュログを確認しましたが、これが表示されます。
0 libobjc.A.dylib 0x000027da objc_msgSend + 18
1 UIKit 0x0008cab4 -[UIViewController unloadViewForced:] + 132
2 UIKit 0x0008ca22 -[UIViewController unloadViewIfReloadable] + 10
3 UIKit 0x0008c9f2 -[UIViewController purgeMemoryForReason:] + 34
4 UIKit 0x0008c896 -[UIViewController didReceiveMemoryWarning] + 10
5 My Application 0x00023340 -[MailboxViewController didReceiveMemoryWarning] (MailboxViewController.m:359)
6 UIKit 0x0008c880 -[UIViewController _didReceiveMemoryWarning:] + 8
ご覧のとおり、MailboxViewController
ViewControllerはdidReceiveMemoryWarning
メッセージを受け取ります。そのビューには実際に解放できるメモリがないため、を呼び出すだけ[super didReceiveMemoryWarning]
です。
奇妙なことに、ViewControllerのへの呼び出しが表示されませんviewDidUnload
。そこに到達する前に、「EXC_BAD_ACCESS(SIGSEGV)」でクラッシュするようです。
何が起こっているのですか、どうすれば修正できますか?