メインスレッドで非常に大きなファイルをメモリに読み込んでいました (単純なdataWithContentsOfFile:
方法だけでなく、データ操作も行っていました)、アプリがクラッシュしました。このプロセスをバックグラウンド スレッドに移動した後、アプリはクラッシュしなくなりました。起こる唯一のことは、NSData
私が得るのはnil
.
メインスレッドに影響を与えずにバックグラウンドスレッドのみが中断される可能性はありますか?それとも何か不足していますか? また、この動作を当てにして、アプリがクラッシュすることなく、NSData
がのときにエラー メッセージを表示することはできますか? nil
前もって感謝します。
編集:
私が得るログは次のとおりです。
malloc: * mmap(size=629800960) 失敗しました (エラーコード=12) エラー: 領域を割り当てられません * * デバッグするために malloc_error_break にブレークポイントを設定します
私が使用していたファイルは約 250 MB の大きさです。
メインスレッドでクラッシュした理由はわかっています。私の質問は、なぜ二次スレッドでクラッシュしなかったのですか?