macos - 如何将数据从内存数据库迁移到Core Data中的NSSQLiteStoreType DB?

标签 macos cocoa core-data

在我的 OSX 应用程序中,我有两个数据库实例:一个使用 NSSQLiteStoreType,另一个使用 NSInMemoryStoreType。数据模型是相同的。

当应用程序运行时,它使用内存数据库实例来保存数据。使用完应用程序后,我想将收集到的所有数据存储到 NSSQLiteStoreType 实例中。

我对这种类型的数据迁移还很陌生。

有人对我如何做到这一点有任何建议或提示吗?!

非常感谢任何形式的帮助!

最佳答案

要从一种存储类型迁移到另一种存储类型,您需要在 NSPersistentStoreCoordinator 上使用 -migratePersistentStore: toURL: options: withType: error:。这将创建新商店。

但是,我很困惑你为什么要这样做。如果您正在寻求最大性能,那么您可能只想从一开始就使用二进制存储。这会将所有内容加载到内存中,并在保存时将所有内容写入磁盘。无需迁移。

内存中存储旨在存储 transient 数据,从内存中存储中迁移出相当 CPU 密集型。

关于macos - 如何将数据从内存数据库迁移到Core Data中的NSSQLiteStoreType DB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24253659/

相关文章:

objective-c - SceneKit Cocoa 添加贴花

iphone - 如何从 NSManagedObjectContextObjectsDidChangeNotification 中排除属性

ios - 有没有办法在不锁定的情况下从数据库中删除对象?

swift - macOS Swift 主从委托(delegate)/协议(protocol)不起作用

macos - 修改 NSTextStorage 导致插入点移动到行尾

ios - NSManagedObject ChangedValues 忽略字符串值

ios - NSManagedObjectContext:带有通知中心的 performBlockAndWait 与 performBlock

objective-c - NSTextField:integerValue 行为不一致

ruby - 如何避免 "cannot load such file -- utils/popen"来自 OSX 上的 Homebrew 软件

cocoa - (MACOSX) - 了解已安装的设备是否是从 DMG 安装的