最佳实践? iphone:同步数据

时间:2009-05-11 07:48:45

标签: ios iphone cocoa-touch synchronization

我正在开展一个有数据可视化的项目。

我的最终目标是通过下载iphone应用程序附带一组数据。 但我希望它连接到后端,如果iPhone与互联网连接。它可以同步来自后端的更改。

同步没有问题或者后端和后端之间的连接; iphone。

但是我应该在iphone上使用什么作为数据存储呢?什么是最好的方法? 我的数据纯文字,不一定是安全的。

但它的主要功能应该是更新某些数据部分(添加和删除不是那么重要)。

那么最简单的(阅读:最耗时的开发)或最佳方式是什么?

  • 源码?
  • 的plist?
  • ..?

4 个答案:

答案 0 :(得分:3)

使用SQLite可能会获得最佳结果。您可以将初始数据库存储在应用程序本身中并复制到Documents文件夹。在启动时从服务器请求增量以使数据库保持同步。对于单向同步,存储版本字段然后要求服务器为该版本执行SQL语句就足够了;对于双向同步,可能需要更复杂的东西。

答案 1 :(得分:0)

对于少量数据(也就是将其全部加载到内存中),我会使用NSUserDefaults持久性机制存储数据,这可以在应用程序启动时轻松处理标准数据结构的序列化和存储。关掉。它非常简单/快速使用。

对于不应一次加载到内存中的较大数据集,sqlite似乎是合理的。

答案 2 :(得分:0)

另一种方法是使用NSDictionary方法writeToFile;这将编写一个NSDictionary(听起来它会解决您的存储需求)。然后,要在启动时重新填充数据,您将获得plist文件的路径(由writeToFile编写),然后是NSMutableDictionary initWIthContentsOfFile:path。

请参阅Jonathan Zdziarski撰写的“iPhone SDK应用程序开发”,第11章:应用程序设置。或者看一下Apple的iPhone应用程序编程指南中更详细的文件和数据管理章节。

我和你在同一条船上,以为我需要SQLLite来存储从网络服务下载的数据。我用一个处理JSON请求的简单进程替换了Web服务,并以NSDictionary格式返回我的数据。然后我使用JSON SDK 2.2为iPhone获取传入的JSON数据并将其存储在NSDictionary中。然后,当我可以轻松地将数据存储在plist中时,如上所述。

这对我有用,但根据您对数据的处理方式,您可能需要不同的东西。

祝你好运。

答案 3 :(得分:0)

plist是非常简单的使用方式。参考http://github.com/samsoffes/iphone-plist

以下是使用带有plist的GAE的一个示例项目。http://www.ibm.com/developerworks/web/library/wa-aj-iphone/