0

まず、Core Data の管理に MagicalRecord を使用しています。そのため、現在、私のデータベース レイヤーは問題なく機能しており、変更が発生するたびに変更が保存されます。例: 新しいエントリをテーブルに追加すると、ハードディスクに保存されている db ファイルにすぐに書き込まれます。私が達成したいのは、すべての変更をメモリ内に保持し、「保存」コマンドをクリックしたときにのみそれらをdbファイルに書き込むことです。

私は、dbファイルの書き込みを行う呼び出しは次のとおりだと考えました。

[managedObjectContext MR_saveToPersistentStoreAndWait];

私が考えたように、そのメソッドを呼び出さずにすべての変更を行うことができ、「保存」をクリックしてそのメソッドを呼び出すことができます。ただし、スレッドが変更されていない場合にのみ機能します。スレッドが変更されるたびに、ManagedObjectContext がリセットまたは再作成され、すべてのデータが失われます。

編集:Magical Recordでメソッドが見つかりました:

[NSPersistentStoreCoordinator MR_coordinatorWithInMemoryStore];

これは、問題の最初の部分に必要なものです。とはいえ、そのタイプのコーディネーターからどのように変更すればよいかわかりません。

[NSPersistentStoreCoordinator MR_coordinatorWithSqliteStoreNamed:objectModelName];

データを失うことなく。

誰もこれを正しく行う方法を知っていますか?! どんな種類の助けも本当に感謝しています!

4

2 に答える 2

0

真面目に調べてみたらわかりました。私は使用する必要があります

 NSPersistentStoreCoordinator *coordinator = [NSPersistentStoreCoordinator MR_coordinatorWithInMemoryStore];

ユーザーが保存をクリックする前にデータを「ハング」させるには、次のようにします。

// psc - my current persistentStoreCoordinator; urlForStore - place where I'm gonna store SQLite
[psc migratePersistentStore:[psc persistentStores][0]  toURL:urlForStore options:nil withType:NSSQLiteStoreType error:&error];
于 2013-10-21T23:00:39.057 に答える