首先,我使用 MagicalRecord 来管理我的核心数据。所以现在我的数据库层工作得很好,每次发生更改时它都会保存更改。例如:我正在向表中添加一个新条目,它会立即写入存储在我的硬盘上的 db 文件。我想要实现的是将所有更改保留在内存中,并仅在单击“保存”命令时将它们写入 db 文件。
我认为执行 db 文件写入的调用是:
[managedObjectContext MR_saveToPersistentStoreAndWait];
因此,正如我所想,我可以在不调用该方法的情况下进行所有修改,然后单击“保存”,调用该方法。但是,它仅在线程未更改时才有效。每次,线程更改 ManagedObjectContext 都会被重置或重新创建,并且我会丢失所有数据。
编辑:刚刚在 Magical Record 中找到方法:
[NSPersistentStoreCoordinator MR_coordinatorWithInMemoryStore];
这是我问题的第一部分所需要的。虽然,我不知道如何从那种类型的协调员更改为
[NSPersistentStoreCoordinator MR_coordinatorWithSqliteStoreNamed:objectModelName];
不会丢失任何数据。
有谁知道如何做到这一点?!任何形式的帮助都非常感谢!