实时应用中的核心数据更新

时间:2010-08-17 13:09:01

标签: iphone core-data ios

希望对此有一些明确的建议。

我想在我的应用上线时推送更新。我计划通过修改应用程序附带的sqlite然后让应用程序下载它来完成此操作。容易。

我还没弄清楚实际上如何让应用程序看到新数据..我可以覆盖文档目录中的sqlite,但是必须重新启动应用才能获取新数据 - 没有好处。作为第一步,我不介意是否会丢失对它的修改,但我真的在寻找一种方法来保持对数据的任何修改,并根据新的sqlite添加/删除条目。它将是整个数据集,而不仅仅是变化。

我正走这条路,因为数据非常复杂,但可以通过基于相同核心数据模型的桌面应用进行管理。

有没有一种共同的方式或方法来实现这一目标?

感谢。

1 个答案:

答案 0 :(得分:2)

没有简单的方法可以完全合并到两个Core Data存储SQL或其他方面。

维护对象图的完整性要求使用与用于创建商店的模型相同的模型,通过上下文将新数据插入到现有商店中。换句话说,批量向商店添加新数据与从UI一次添加一个数据的逻辑过程相同。您插入NSManagedObject实例,填充它们,设置它们的关系并保存它们。

理论上,您可以编写大量代码来将新旧SQL数据库合并到Core Data可以读取的新SQL存储中。然而,这很复杂,不受支持,并且可能会在Apple未来发生变化时破坏。

我建议让应用程序自己从服务器下载数据,然后将新数据插入现有商店。使用JSON之类的东西发送数据是微不足道的。或者,您可以下载新商店,将其添加到现有持久性存储协调器,然后在旧商店中创建克隆新对象。然后从协调器中删除下载的存储并删除下载的存储文件。