我有两个数据库文件,我可以轻松地将核心数据从一个上下文复制到另一个上下文 - 如果我将两个上下文放在主线程(NSMainQueueConcurrencyType
)中。
但是,如果我希望它在后台线程中异步发生,并且每个数据库文件的上下文为NSPrivateQueueConcurrencyType
,我该怎么办呢?请记住:两个上下文都有不同的持久性商店协调员!
(PS:因为在iOS 9中不推荐使用NSConfinementConcurrencyType
,所以对我来说,限制类型是不可能的。)
答案 0 :(得分:1)
您可以使用单个上下文和PSC(如果它们不同,则合并两个模型)。添加两个商店(如果需要,使用配置),然后使用affectedStores
从一个商店获取,allocateObject:toPersistentStore:
添加到另一个商店。如果一个商店以只读方式打开,那么您将不需要使用allocateObject:
,Core-Data将推断出要使用的正确商店。