2012-03-23 49 views
0

我正在使用NSURLConnection来获取XML文件。我解析XML文件,然后用它来填充核心数据。只有在更新后才导入XML

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

但是,我在想...有没有一种方法可以对XML文件进行检查,以查看它是否从上次使用过的更新过?因此,如果保持不变,我可以保存redownloading/repopulating它?

检查上次修改的文件或东西?

任何人都有这个好的解决方案?

谢谢!

+1

该问题被错误地标记为检查服务器上的文件修改日期。如果服务器支持它,你可以发送一个头部请求并检查Last-Modified头部。 – Joe 2012-03-23 15:42:25

+0

无论如何,你可以提供一些示例代码? – sayguh 2012-03-23 15:44:51

回答

1

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

+0

我能够得到示例代码来做到这一点http://stackoverflow.com/questions/6895451/how-to-get-remote-file-modification-date – sayguh 2012-03-26 12:43:10

0

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

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

相关问题