2015-07-19 111 views
0

我有一個應用程序使用來自Web服務器的數據。當你第一次啓動應用程序時,它下載數據然後使用它。但是如果網站上的數據發生了變化呢?我如何從應用程序知道數據已更改,如果有,我應該下載哪些數據?檢查網絡服務器上數據更新的最佳方法

我的第一個想法是每次運行應用程序時檢查手機本地數據庫中的條目數和Web服務器上的條目數,如果不相等,則刪除本地數據庫中的所有數據然後再次下載所有數據。但我認爲,如果應用程序只加載5-10個需要的記錄而不是所有數據,則需要更多的時間。

第二個想法是當網站上的信息發生變化時,網站不知何故必須通知應用程序加載一些記錄。但我不知道是否有可能這樣做(

另一個想法是將應用程序數據庫中最後一個條目的id與網站上的最後一個id進行比較,如果他們不等於從下一個下載信息ID。

是否有任何建議,我怎麼能做到這一點?

+1

嗨。需要將數據和時間戳保存在本地數據庫中。然後,例如,在重新啓動應用程序時,向服務器詢問新數據 - 只需發送最後一次數據更新的時間戳即可。如果服務器告訴 - 需要更新,則調用數據更新url。服務器應該實現這個功能 - 按時間戳檢查新數據。 –

+0

您可以使用推送通知來通知您的應用程序有新數據。 – Paulw11

+0

@Mozilla你的解決方案似乎沒問題,我會試試看,謝謝! – mikle94

回答

0

我不知道你有任何數據庫或Web服務,但我的建議是從使用JSON或XML的網絡數據進行解析。

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/

這個類的引用是很清楚的。

同樣在我看來,如果你是swift中的新手,並且想要爲此操作選擇簡單的方式搜索iOS包管理器。

如果你想使用的軟件包管理器爲您的項目,e.g 波德

https://cocoapods.org/pods/Alamofire

將是一個很好startig點。

Alamofire是一個用Swift編寫的HTTP網絡庫。

希望能幫助你

相關問題