在线检查JSON文件的更新,并将其与本地存储文件进行比较

时间:2012-07-27 02:02:29

标签: iphone objective-c ios xcode json

我出现在这片树林里:我有一个通用的,基于导航的应用程序,它显示当前存储在plist文件中的数据。在将来的版本中,我想将数据库迁移到我的服务器上的JSON文件,应用程序可以将其下载到它的捆绑包,然后解析它。任何人都可以建议一种简单轻量级的方法来检查捆绑包中当前存储的文件是否与服务器上托管的版本相匹配?基本上检查数据库的更新,而无需重新下载整个JSON文件。

这是JSON文件开头目前的样子片段。

{ "version" : "0.2", "description" : "1. Corrections to several entries.\n2. Added 21 new departments from Alameda & Fresno Counties.", "counties" : {............... *Rest of the JSON file here* .....}

我的想法是将“version”(“0.2”)值存储到NSUserDefaults,并在每次启动应用程序时使用该值检查可用的JSON文件。

我是在正确的轨道上还是有更好的方式完成这项工作?

谢谢

罗密欧

2 个答案:

答案 0 :(得分:3)

您可以将If-Modified-Since标头添加到NSMutableURLRequest的实例中。如果服务器上的文档自该日期起已更改,您将获得数据。如果它没有改变,则会得到304 Not Modified且没有数据。

这比发出HEAD请求要好得多,因为在更新文件的情况下,您只需要发出一个请求而不是两个请求。

答案 1 :(得分:1)

执行HEAD请求(而不是GET)并检查LastModified标头。如果自上次检查后文件已被修改,请下载该文件。将修改后的时间保存在某个地方,以便与下次比较。

您可以在请求对象上设置http方法,如下所示:

 [request setHTTPMethod:@"HEAD"];