【问题标题】:core-data update in live app实时应用程序中的核心数据更新
【发布时间】:2010-08-17 13:09:01
【问题描述】:

希望能得到一些明确的建议。

我想在我的应用上线时推送更新。我计划通过修改应用程序附带的 sqlite 来做到这一点,然后让应用程序下载它。很简单。

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

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

有没有一种通用的方法,或者根本没有一种方法可以实现这一点?

谢谢。

【问题讨论】:

  • 有人知道这个吗?我的模型没有从 v1 更改为 v2。但是对于我的应用程序的 v2,我想向用户的 SQL 数据库添加一些记录。我一辈子都想不通如何创造一些新记录。

标签: iphone core-data ios


【解决方案1】:

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

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

理论上,您可以编写大量代码将新旧 SQL 数据库合并到 Core Data 可以读取的新 SQL 存储中。但是,这很复杂,不受支持,并且可能会在 Apple 将来改进某些内容时被打破。

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

【讨论】:

  • 感谢 TechZen,我试图避免编写一个 web 应用程序(尽管很简单)来提供 iPhone 应用程序。我正在走 JSON 路径,因为无法处理多个商店。
猜你喜欢
  • 1970-01-01
  • 2012-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多