2012-03-23 51 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的時間設置應用程序端數據的時間戳,但如果您希望它完全可靠,則需要同步應用程序和服務器倍。雖然這不是特別困難,但這是一個煩惱。

相關問題