ios - 多个持久存储协调器核心数据

标签 ios objective-c core-data

目前我有一个由 sql 数据库支持的持久性存储协调器。我里面有很多实体。当我更改模型时,我尝试使用轻量级迁移。如果它失败了,我只是删除所有内容并重新设置。现在这工作正常。现在假设我必须保存一些书签。由于您可以拥有多个书签,我认为最好将其与核心数据一起保存。但是在这种情况下,我需要一个真正的迁移策略,这样用户就不会丢失其书签。

我正在考虑创建一个单独的持久存储协调器,它只包含书签实体。有了这个,我可以在必要时进行迁移,另一个持久性存储可以按原样使用,无需迁移。

这是否可行且值得推荐?或者有什么我必须提防的陷阱。我希望我能正确解释我的情况。我也在考虑使用 NSCoding 保存书签,但我不确定在这种情况下哪个更好。

感谢任何帮助。

最佳答案

完全有可能。将刚刚从服务器下载的静态数据(因为不应该备份)和用户创建的数据(应该备份)分开当然是一个好主意。

您的主要陷阱在于确保将存储/上下文分开,并且您的代码正确命名事物,以便您正在使用的内容显而易见。

如果您只有几个书签,而且它们很小,并且通常会同时加载,那么 NSCoding 是一个不错的选择。如果您有很多,它们很大或不经常加载,那么这不是一个很好的选择。

关于ios - 多个持久存储协调器核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23407711/

相关文章:

iphone - 背景中的 UILocalNotification 响亮的声音

objective-c - 如何在 iOS 中以编程方式编写带有音频文件的彩信?

iphone - 保存: and processPendingChanges: in CoreData之间的区别

ios - 如何将 iOS 框架添加到 Unity 项目中?

ios - 如何使状态栏在 iOS 的 MPMoviePlayerController 中不消失?

ios - 为什么 UITableView 总是可以滚动而 UIScrollView 不能

ios - 无论类型如何传递不兼容的指针类型?

core-data - NSManagedObject 是否保留其 NSManagedObjectContext?

iphone - MagicalRecord 在 importFromObject : 上崩溃

javascript - Safari Web Inspector 不调试 iOS 7 模拟器中的 JavaScript