仅在已更新的情况下导入XML

时间:2012-03-23 15:32:50

标签: ios core-data nsurlconnection nsxmlparser

我正在使用NSURLConnection来获取XML文件。我解析XML文件,然后用它来填充核心数据。

如果NSURLConnection无法连接(即用户没有互联网连接),我只是从核心数据中读取持久数据。

但是,我在想...有没有办法可以检查XML文件,看看它是否从我上次使用它时更新了?所以如果不变,我可以保存重新下载/重新填充吗?

检查上次修改的文件或其他内容?

任何人都有一个很好的解决方案吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

这可以通过检查http标头或etags来完成。

答案 1 :(得分:0)

让服务器将其当前系统时间作为<timestamp>1332368408</timestamp>之类的新字段添加到XML文件中。您需要另一个服务器API调用来检查特定文件是否已被修改,如http://<server>/xmlFileChangedSince/1332368408返回true或false,基于您建议的文件的最后修改或通过覆盖每个<timestamp>字段修改文件的时间。如果上述http请求的结果为true,那么您的应用程序就知道要下载新修改的数据。

<timestamp>字段添加到服务器端的XML文件的方法的好处是,它可以防止任何必须同步服务器和应用程序的时间,这些时间保证不会完全同步。如果您不想将字段添加到XML数据,那么您可以根据NSURLConnection返回的时间设置应用程序端数据的时间戳,但如果您希望它完全可靠,则需要同步应用和服务器时间。虽然这并不是特别困难,但这是一种烦恼。

相关问题