我有两个数据库文件,我可以轻松地将核心数据从一个上下文复制到另一个 - 如果我将两个上下文都放在主线程中 (NSMainQueueConcurrencyType
)。
但是,如果我希望它在每个数据库文件的上下文都是 NSPrivateQueueConcurrencyType
的后台线程中异步发生,我该怎么做呢?请记住:两个上下文都有不同的持久存储协调器!
(PS:由于 NSConfinementConcurrencyType
在 iOS 9 中被弃用,所以限制类型对我来说是不可能的。)
最佳答案
您可以使用单个上下文和 PSC(如果两个模型不同,则合并它们)。添加两个存储(如有必要,使用配置),然后使用 affectedStores
从一个获取并使用 allocateObject:toPersistentStore:
在另一个插入。如果一个商店以只读方式打开,那么您将不需要使用 allocateObject:
,Core-Data 将推断要使用的正确商店。
关于ios - 在后台线程中将核心数据从一个数据库复制到另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37937909/