最佳实践?iPhone:同步数据

8
我正在处理一个包含数据可视化的项目。
我的最终目标是在iPhone应用程序下载时附带一组数据。但我想将其连接到后端,以便如果iPhone与互联网连接,则可以从后端同步更改。
同步不是问题,后端和iPhone之间的连接也没有问题。
但是,在我的iPhone上使用什么作为数据存储?什么是最好的方法?
我的数据纯文本,不需要安全性。但它的主要特点应该是更新某些数据部分(添加和删除并不重要)。
那么,什么是最简单(即:开发时间最短)或最好的方法?
- SQLite? - Plist? - ..?
4个回答

3

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


0

0
另一种方法是使用NSDictionary的writeToFile方法;这将写入一个NSDictionary(听起来像是解决您的存储需求)。然后在启动时重新填充数据,您将获得一个指向plist文件的路径(writeToFile编写),然后NSMutableDictionary initWIthContentsOfFile:path。
查看Jonathan Zdziarski的“iPhone SDK Application Development”第11章:应用程序设置。或者查看苹果的iPhone应用程序编程指南中更详细的文件和数据管理章节。
我曾经也像你一样,认为我需要SQLLite来存储从Web服务下载的数据。我用一个处理JSON请求并以NSDictionary格式返回我的数据的简单过程替换了Web服务。然后我使用iPhone的JSON SDK 2.2来获取传入的JSON数据并将其存储在NSDictionary中。然后当我可以轻松地像上面提到的那样将数据存储在plist中。
这对我有用,但根据您对数据的操作可能需要不同的东西。
祝好运。

0
对于少量数据(也就是你可以轻松将其全部加载到内存中的数据),我会使用NSUserDefaults持久化机制来存储数据,它可以在应用程序启动和关闭时轻松处理标准数据结构的序列化和存储。使用起来非常简单和快速。
对于不应一次性加载到内存中的较大数据集,sqlite似乎是合理的选择。

数据可以增长到1MB,这对于NSUserDefaults来说不是太多了吗?在sqlite中保存数据结构(例如字典或数组)有什么好的做法吗? - Andy Jacobs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接