2016-06-21 75 views
1

我有两个数据库文件,我可以很容易地将核心数据从一个上下文复制到另一个 - 如果我把两个上下文都放在主线程中(NSMainQueueConcurrencyType)。
但是,如果我希望它在后台线程中异步发生,那么每个数据库文件的上下文都是NSPrivateQueueConcurrencyType?请记住:两个上下文都有不同的持久性商店协调员!
(PS:由于NSConfinementConcurrencyType在iOS版9提倡使用的约束类型是出了问题对我来说)。核心数据从一个数据库复制到另一个数据库在后台线程

+0

您是在复制商店中的所有商品,还是只是一个子集? – pbasdf

+0

@pbasdf:只有一个子集。 – Jan

+1

您可以使用单个上下文和PSC(合并两个模型,如果它们不同),添加两个存储(如果需要,使用配置),然后使用'affectedStores'从一个和'allocateObject:toPersistentStore:'插入另一个。只是一个想法;从来没有尝试过。 – pbasdf

回答

1

你可以使用一个单一的环境和PSC(合并两个模型,如果它们是不同的)。添加这两个商店(如果需要,使用配置),然后使用affectedStores从一个提取并且allocateObject:toPersistentStore:插入另一个。如果一个商店以只读方式打开,那么您将不需要使用allocateObject:,Core-Data将推断使用的正确商店。

相关问题