目前我有一个由 sql 数据库支持的持久性存储协调器。我里面有很多实体。当我更改模型时,我尝试使用轻量级迁移。如果它失败了,我只是删除所有内容并重新设置。现在这工作正常。现在假设我必须保存一些书签。由于您可以拥有多个书签,我认为最好将其与核心数据一起保存。但是在这种情况下,我需要一个真正的迁移策略,这样用户就不会丢失其书签。
我正在考虑创建一个单独的持久存储协调器,它只包含书签实体。有了这个,我可以在必要时进行迁移,另一个持久性存储可以按原样使用,无需迁移。
这是否可行且值得推荐?或者有什么我必须提防的陷阱。我希望我能正确解释我的情况。我也在考虑使用 NSCoding 保存书签,但我不确定在这种情况下哪个更好。
感谢任何帮助。
最佳答案
完全有可能。将刚刚从服务器下载的静态数据(因为不应该备份)和用户创建的数据(应该备份)分开当然是一个好主意。
您的主要陷阱在于确保将存储/上下文分开,并且您的代码正确命名事物,以便您正在使用的内容显而易见。
如果您只有几个书签,而且它们很小,并且通常会同时加载,那么 NSCoding
是一个不错的选择。如果您有很多,它们很大或不经常加载,那么这不是一个很好的选择。
关于ios - 多个持久存储协调器核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23407711/