2015-10-13 59 views
3

我目前正在開發一個大型數據庫的應用程序。按照以下方式將該應用視爲與TripAdvisor類似:使用不同數據庫的多個城市,每個城市的數量分別爲5,10,20,30 MB。我的整個應用都基於這些數據:每個視圖都需要它的一部分。iOS - 如何處理在線/離線數據

我很難找到正確的方法來處理這個龐大的數據。我目前正在使用CoreData:我認爲它是一個很好的工具,對於離線模式,它絕對有效。 問題是,我不能真正將它與「在線」模式結合起來。如果用戶不想爲X/Y原因存儲數據,我不知道該如何處理數據。 只需將其分配到將要發佈的變量中,還是有更好的方法來處理數據? 現在我將它放入CoreData而不保存它:我知道這絕對不是管理它的好方法。我怎麼能做到這一點? 處理在線數據的最佳方式是什麼?如果用戶也希望它離線,那麼最好的辦法就是存儲它。

+0

你的問題很混亂。如果用戶沒有下載數據,那麼設備上的數據如何開始? 「問題是」後面的所有內容似乎都是矛盾的,對我來說沒有任何意義。也許用更多的信息重新提出你的問題,或者更準確地說明你想達到的目標。 –

+0

我知道我的問題很混亂,對此感到抱歉。我的意思是用戶不存儲數據,當然他會下載它。我認爲這是最大的區別。重點是有些用戶會希望將數據存儲在手機上以供離線使用,而其他用戶則不會(內存不足等)。這是我的問題。我如何處理這兩種不同的庫存方法? –

+0

您可以爲持久性存儲協調器有條件地使用內存存儲或文件存儲(您甚至可以同時使用兩者)。當然,如果您允許在商店中同時存在太多對象,那麼您將冒着吃掉所有內存的風險,但是如果用戶在此工作,我認爲您已經有了限制對象數的方法模式。 –

回答

0

選項1:

數據總是靜態的/沒有改變的數據頻繁: 您應該對在線數據。您可以通過webservice獲取數據並將其存儲到本地數據庫(即核心數據)。例如:聖經,古蘭經應用程序。

選項2:

數據變化頻繁和用戶需要頻繁更新:與上面相同。此外,從服務器發送通知(我推送通知)到應用程序,該服務器有一個新的數據。在應用程序獲取通知後,下載並保存數據到您的數據庫。