哎呀,抱歉标题有点长。
我有一个单一的托管对象上下文,我在其中存储了来自两个不同位置的歌曲。我从手机上的持久化存储(使用Core Data)中获取一些歌曲,并从在线数据库中获取一些歌曲。这些歌曲都是相同的ManagedObject子类。我希望这两首歌都在一个上下文中,因为我希望它们都显示在与NSFetchedResultsController连接的表视图上。
问题出现在我想保存其中一首歌时。我不想将从在线数据库中拉取的所有歌曲都保存到手机上。我只想保存单独的一首歌曲,所以简单的[moc save]无法解决问题。另一个问题是,在保存单个歌曲后,我仍然希望在线拉取的歌曲位于上下文中(但再次强调,不会被保存)。我认为我有几个不同的选项:
1)是否可能将NSFetchedResults控制器连接到多个上下文?
2)我可以将从在线数据库中拉取的所有歌曲移动到一个单独的临时上下文中,在原始上下文中保存,然后再将所有歌曲移回。(参见:如何复制或移动来自一个上下文的NSManagedObject到另一个上下文中?)
3)记住在线歌曲的所有键值对,从上下文中删除在线歌曲,保存原始上下文,在基于保存的键值对中重新插入所有在线歌曲。
4)我是个新手,可能忽略了更简单的方法。
谢谢!