从Web Service在iOS App上存储动态数据的最佳方式

时间:2011-08-07 09:25:22

标签: iphone sqlite core-data plist


我想知道从Web服务在iPhone上存储数据的最佳方法是什么。 我希望将信息存储在设备上,这样每个人在需要时都不需要访问Web服务。目前的信息不多,包含的记录少于150条。记录可能会不时更新,并会添加一些新记录。存储数据的最佳方法是什么?

由于

2 个答案:

答案 0 :(得分:2)

如果你使用ASIHTTPRequest作为你的网络资料(如果你还没有,我不能高度赞美它),你会发现它内置了一个缓存层,非常适合你的情况像这样。

您可以使用简单的一行激活它;

[ASIHTTPRequest setDefaultCache:[ASIDownloadCache sharedCache]];

您可以完全控制缓存策略等 - 只需阅读文档。

另一种简单的方法当然是 - 假设您的Web服务正在返回JSON或XML - 只是将响应存储在本地文件中,而不是请求参数的哈希值,然后当您再次请求数据时,可以先查看文件是否存在,如果存在,则返回该数据而不是返回网站。您也可以推出自己的缓存策略等。

因为我发现ASIHTTPRequest有一个缓存,所以我不需要再次使用它了。

我发现使用coreData或sqllite3对我99%的要求来说太过分了,简单的缓存效果很好。

答案 1 :(得分:1)

如果数据是关系型的,那么Sqlite3数据库将是您拥有的最佳存储选项。

此外,这有助于您从服务器检索并仅更新已更改的记录,从而节省时间和带宽。

从可扩展性的角度来看,这也是最好的选择,因为你说“当前的信息并不多”,因此给人的印象是这只是一个当前的情况,可能会受到进一步的改变,可能会及时添加更多记录。

与使用核心数据相比,Sqite3还可以提供更多控制和更好的性能。 Here是一篇解释一些细节的文章。此外,如果您使用Objective-C包装器(例如FMDB),您将获得所有优势,而无需自行管理复杂性。