Core Data在后台线程中从一个db复制到另一个db

时间:2016-06-21 07:19:36

标签: ios multithreading core-data

我有两个数据库文件,我可以轻松地将核心数据从一个上下文复制到另一个上下文 - 如果我将两个上下文放在主线程(NSMainQueueConcurrencyType)中。 但是,如果我希望它在后台线程中异步发生,并且每个数据库文件的上下文为NSPrivateQueueConcurrencyType,我该怎么办呢?请记住:两个上下文都有不同的持久性商店协调员! (PS:因为在iOS 9中不推荐使用NSConfinementConcurrencyType,所以对我来说,限制类型是不可能的。)

1 个答案:

答案 0 :(得分:1)

您可以使用单个上下文和PSC(如果它们不同,则合并两个模型)。添加两个商店(如果需要,使用配置),然后使用affectedStores从一个商店获取,allocateObject:toPersistentStore:添加到另一个商店。如果一个商店以只读方式打开,那么您将不需要使用allocateObject:,Core-Data将推断出要使用的正确商店。