5

そこで、MagicalRecord を使用して iPad アプリを開発していましたが、最近、自動移行ストアに移動してから、いくつかの問題が発生しています。あるデバイスから別のデバイスに .db ファイルを同期する必要があるため、すべてのデータが .db にある必要がありますが、WAL ジャーナリング モードが有効になっているようです (Magical Record 自動移行ストアのデフォルト)どのように保存しても、.db-wal ファイルまたは .db-shm ファイルのいずれかへの変更のみが保持されます。通常の sqlite ストアに切り替えたところ、すべて正常に機能しました。それで、私の質問は、WALジャーナリングが有効になっている場合、コアデータを実際にメインデータベースに保存するために何か特別なことをする必要がありますか?それとも単に無効にする必要があるのでしょうか?

4

2 に答える 2

4

ジャーナルモードを変更します。結局のところ、魔法の記録のソースがあります。SQLite ジャーナル モードを に変更するDELETEと、トランザクションごとにジャーナル モードが削除されます。ジャーナリングを無効にすることは本当に悪い考えです。そうしないでください。ただし、別のモードを使用しても問題ありません。

Core Data は、永続ストアが開かれると、ジャーナルを操作するための API を提供しません。SQLite は実装の詳細であり、Core Data は内部の SQLite の詳細を公開しません。最も近いのはoptions、Core Data スタックをセットアップするときのパラメーターです。ここで、ジャーナル モードを変更できます (および MR が変更します)。

于 2013-09-07T20:27:45.633 に答える