从iOS应用程序更新数据库

时间:2013-03-19 15:23:14

标签: iphone ios database ipad core-data

嗨,我是iOS编程的新手,

我正在构建一个iOS应用程序来显示产品的目录(产品名称,产品编号,描述和图像)。用户在iOS设备上安装应用程序后,产品列表可能会发生更新。用户将无法修改数据库中的任何数据。

有人可以让我知道我需要使用哪种数据库(SQL lite,Json或Coredata)以及如何让更新发生。我应该只更新新的/修改过的记录,还是每次都更新完整的数据库。

从appstore中看到的应用程序的一些示例,应用程序在第一次加载应用程序时会下载整个(最新版本)的数据库。

提前感谢社区中的所有朋友。您的建议,代码,示例和任何参考资料和链接将会有很大的帮助。

干杯!!

1 个答案:

答案 0 :(得分:2)

有几点想法:

  1. Apple推荐的框架是Core Data。特别是如果你有很多数据,可能值得熟悉它。

  2. 直接SQLite编程可以有其优点,但除非你有一个令人信服的理由去追求它(我在你的问题中没有看到任何暗示这一点),坚持使用核心数据。如果您决定使用SQLite,请考虑使用SQLite的FMDB Objective-C包装器。

  3. 如果您正在处理大量数据(例如十几条记录),则Core Data可能过度,您可以使用属性列表(plist)。例如,如果您已将JSON下载到NSArrayNSDictionary,则可以writeToFile保存,dictionaryWithContentsOFFilearrayWithContentsOfFile在将来的日期回读。

  4. JSON通常被认为是一种与服务器交换数据的机制。我不倾向于以JSON格式本地存储数据(尽管你可以)。我会改用plist。

  5. 顺便说一下,通常不建议将图像本身存储在CoreData / SQLite数据库中。如果您有较大的文件,出于性能原因,我们经常将它们存储在iOS File System中(并保存对数据库中文件名的一些引用)。

  6. 您提到您已经看过下载整个(最新版本)数据库的应用程序。更复杂的实现(对于较大的数据库至关重要)将需要下载更新(编辑,删除,插入)而不是完整的数据库。对于一个小型数据库,如果您可以使用您提出的解决方案(并且它确实使其更容易),但随着您的应用程序变得更加复杂,您将需要考虑更优雅的服务器集成。