まず、Core Data の管理に MagicalRecord を使用しています。そのため、現在、私のデータベース レイヤーは問題なく機能しており、変更が発生するたびに変更が保存されます。例: 新しいエントリをテーブルに追加すると、ハードディスクに保存されている db ファイルにすぐに書き込まれます。私が達成したいのは、すべての変更をメモリ内に保持し、「保存」コマンドをクリックしたときにのみそれらをdbファイルに書き込むことです。
私は、dbファイルの書き込みを行う呼び出しは次のとおりだと考えました。
[managedObjectContext MR_saveToPersistentStoreAndWait];
私が考えたように、そのメソッドを呼び出さずにすべての変更を行うことができ、「保存」をクリックしてそのメソッドを呼び出すことができます。ただし、スレッドが変更されていない場合にのみ機能します。スレッドが変更されるたびに、ManagedObjectContext がリセットまたは再作成され、すべてのデータが失われます。
編集:Magical Recordでメソッドが見つかりました:
[NSPersistentStoreCoordinator MR_coordinatorWithInMemoryStore];
これは、問題の最初の部分に必要なものです。とはいえ、そのタイプのコーディネーターからどのように変更すればよいかわかりません。
[NSPersistentStoreCoordinator MR_coordinatorWithSqliteStoreNamed:objectModelName];
データを失うことなく。
誰もこれを正しく行う方法を知っていますか?! どんな種類の助けも本当に感謝しています!