アプリケーションでCoreDataを使用していますが、シミュレーターの奇妙な動作を発見しました。アプリのCore Dataにデータを追加し、XCodeの[停止]ボタンを使用してシミュレーターを終了すると(またはCmd-Qを押すだけ)、次にシミュレータを起動したときに、データがデータベースに保存されません。いくつかのテストの結果、データがディスクに保存されていることがわかりました。
- ホームボタンを押すとすぐに。(ほとんど-非常に高速に終了する場合は、データが保存される前にアプリケーションを終了することができます。)
- データを追加した後、しばらくの間(少なくとも約20秒)アプリケーションを実行させた場合。
[NSManagedObjectContext save:]を呼び出すことは役に立ちません。動作は同じです。
だから私の質問は:この種の行動の理由は何ですか?終了する前にディスクへのフラッシュを強制する方法はありますか?また、デバイスで実行しているときにこの方法でデータを失う可能性があるリスクはありますか(個人的には、強制終了以外は表示されませんが、奇妙な動作が少し気になります)