2017-04-12 83 views
-1

我是一名初學者,我和我的朋友進行了一次小小的辯論,這位朋友是一位具有五年以上經驗的Ruby和Rails開發人員,並且基本上爲Web工作,並且我知道他得到的信息來自他的各種演示去過。在同步交易的應用程序中是否使用CoreData?

所以,我正在學習和建立一個項目。該項目需要從其他設備獲取數據,並從其他用戶的管理員設備發送數據。

我想建立這個應用程序能夠保存數據,如果設備出於某種原因離線(用戶將旅行,並可以發現自己的信號)。

我的朋友說我不需要將數據保存到設備中,或不使用CoreData,我可能需要某種類型的緩存才能在設備脫機時臨時保存數據。

我告訴他,這不是一個天氣應用程序,你只需下載數據並將其顯示給用戶,我需要對數據進行更改並將其發送回服務器,以便其他用戶看到更改。

所以,我的問題是:

我需要使用CoreData當設備處於脫機狀態保存到本地數據和發送到服務解析JSON的請求?

哪種方法最好?

非常感謝您的時間和知識!

回答

0

我的朋友說我不需要將數據保存到設備中,或者不使用CoreData,我可能需要某種類型的緩存才能在設備脫機時臨時保存數據。

你的朋友認爲如果緩存不在設備上,緩存將位於何處?緩存但不保存數據是相互矛盾的想法。

核心數據可用作脫機緩存。還有其他選項,包括保存屬性列表文件和直接使用SQLite。哪一個最好取決於你如何使用應用程序中的數據。

我需要使用CoreData當設備處於脫機狀態在本地保存數據,或使用CoreData保存一切,發送到使用解析JSON文件服務器的請求?

牢記我們沒有您的應用程序的詳細說明,

  • 如果服務器提供JSON格式的數據,那麼你需要解析。
  • 如果要脫機使用數據,則需要以某種方式將其保存在設備上。無論你是否稱此爲緩存都沒有意義。
  • 核心數據是一種可能的方法。它可能是也可能不是正確的,但這是一個單獨的問題,如果沒有關於應用程序如何使用這些數據的更多信息,就無法回答。

一種常見的方法是向服務器請求數據並將其保存到本地。在應用程序中訪問數據時,請在本地副本中查找。保持服務器通信和本地數據訪問的分離;如果它們是相同的東西,那麼你直接與服務器通信以獲取所有數據,並且沒有脫機訪問。跟蹤本地更改,以便您可以將它們發送回服務器。

+0

非常感謝您的時間湯姆,我真的很感激! – arthurbas