2010-08-25 54 views
0

我正在編寫一個應用程序,用於與json中的Web服務進行通信。我很想緩存來自此服務的數據,以便用戶在獲取更新的數據時始終可以顯示緩存的數據。如何與JSON和Core Data中的Web服務進行通信?

我已經看過一個小項目;核心資源是核心數據上的一層。它從JSON轉換爲數據對象,看起來非常有前途。由於這個項目沒有大型社區或進一步發展的高級進展,我不確定它是否適合我。

有誰知道類似的項目?還是應該讓我的自己只有一個JSON庫和核心數據?

回答

0

將JSON轉換爲Core Data並向後轉換是很簡單的。我實際上在Stack Overflow上發佈了一個答案,可以解決這個問題。

JSON and Core Data on the iPhone

除此之外,使用NSURLConnection的推和拉的數據是你真正需要的。這個「庫」似乎是一個額外的不必要的複雜性。

+0

我會爲此解決方案,我認爲你是對的。 – Andi 2010-08-27 16:12:21

+0

我試過你的實現,我不同意它不需要用於JSON和Core Data對象之間的映射的框架/庫。我可能誤解了一些東西。我做了很多工作來使你的實現符合我的要求。你的實現不關心對象是否已經存在,應該被刪除,修改或創建。我想我會做很多可以普遍使用的邏輯。你的代碼是一個很好的起點,但遠不是我所需要的。 – Andi 2010-08-30 21:58:40

+0

我作爲例子發佈在答案中的代碼就是這樣一個例子。這不是解決您的特定需求的下降。它展示了KVC的強大功能,可以輕鬆實現JSON和Core Data之間的遞歸轉換。框架/庫是沒有用的,因爲你的數據對你的應用程序來說是唯一的,而且通用的解決方案几乎肯定會過於複雜和/或效率低下。根據實例編寫你自己的實現,你將學到更多關於該語言的知識。 – 2010-08-31 00:34:54

0

一個想法可能是使用支持在URL級別緩存的常規iPhone URL加載系統的NSURLConnection的URL緩存。這將特別適用於RESTful網絡服務。您可以使用API​​的內置緩存或實施您自己的聊天策略。 (請參閱here)如果您不想保留緩存,則不需要CoreData。

+0

我想持久保存我的對象,以便用戶可以在離線模式下使用所有先前加載的數據。我一直在尋找一個Google類GDataHTTPFetcher,它支持內存緩存,支持最後修改的HTTP頭。我想爲iPhone寫一些與磁盤緩存類似的東西,但是即使服務器返回304消息,我也需要處理我的數據。我真的很喜歡那門課,但這不是我想要的。 – Andi 2010-08-30 22:06:38

+0

正確的建議方法只是意味着非持續使用。在這種情況下,CoreData是完美的選擇 – Chris 2010-09-01 00:27:20

相關問題