2012-12-19 49 views
6

我正在構建一個社交應用,其中包括供稿,個人資料,朋友和追隨者等功能。我正在使用核心數據來持久保存所有對象。當用戶啓動應用程序時,數據從核心數據中獲取並立即顯示給用戶,但我也在後臺獲取更新。核心數據限制以及何時不保存數據

問題是,目前我將所有內容保存在覈心數據中。例如,如果我訪問一個朋友配置文件,我會獲取該朋友的提要對象並將其保存在覈心數據中。現在,當我下次訪問同一個朋友的個人資料時,我最初只顯示已保存的供稿(並在後臺更新)。

我應該這樣做嗎?在覈心數據中保存所有內容(以獲得更好的用戶體驗)還是有問題的,或者當數據集變大時可能會出現任何限制或問題嗎?在保存什麼和不保存什麼的問題上,我必須遵循哪些好的做法?

感謝

+0

您可以將everyhıng保存到核心數據,但是當數據存在並且您想要提取它們時問題存在。如果您沒有在時間線中提取所有條目,則應該無關緊要。您可以限制提取結果(對象數返回),或者用時間​​之類的謂詞來限制。 –

+0

提取不會是一個問題。我只會提取所需的對象而不是所有的東西。但是我的問題是,例如,保存好友的提要對象是一種好的做法,因爲我可能再次訪問該提示對象的概率的可能性很低,並且再次需要保存對象。或者在保存額外數據方面有什麼不利之處? PS。每次我們訪問朋友檔案時,Facebook應用程序都不會保存朋友提要和服務器提取 –

+0

從軟件架構的角度來看,您可以緩存某些數據,但大多數社交網絡應用程序都是瘦客戶端應用程序。這意味着所有數據都從服務器上檢索request.Your方法不是很常見。 –

回答

2

雖然原則上,你可以用你的才能的方法來立即顯示的一些數據,也有一些顯著的權衡。總的來說,我認爲你的方法是有問題的。

將您的情況與iPhone上的郵件應用程序進行比較(至少當您使用郵件服務器時存在一些延遲)。打開郵箱時,您會看到舊郵件以及指示更新爲運行。然後,突然,顯示屏會更新所有新消息。你的方法與此非常相似。

這對郵件消息可能是正確的,但它是否真的可以接受新聞提要和狀態消息?我不這麼認爲。當情況已經發生變化(認爲「我感覺好極了」)時,陳舊的狀態信息(認爲「我感覺藍色」)是誤導性的,並且會導致令人沮喪的用戶體驗。

您的核心數據存儲仍然可以存儲所有數據並定期自行清除。初始提取可能會導致比某個閾值更舊的項目不會顯示(並刪除)。同時,堅持更加永久的數據(如朋友列表)是非常有意義的。