我正在編寫一個應用程序,用於與json中的Web服務進行通信。我很想緩存來自此服務的數據,以便用戶在獲取更新的數據時始終可以顯示緩存的數據。如何與JSON和Core Data中的Web服務進行通信?
我已經看過一個小項目;核心資源是核心數據上的一層。它從JSON轉換爲數據對象,看起來非常有前途。由於這個項目沒有大型社區或進一步發展的高級進展,我不確定它是否適合我。
有誰知道類似的項目?還是應該讓我的自己只有一個JSON庫和核心數據?
我正在編寫一個應用程序,用於與json中的Web服務進行通信。我很想緩存來自此服務的數據,以便用戶在獲取更新的數據時始終可以顯示緩存的數據。如何與JSON和Core Data中的Web服務進行通信?
我已經看過一個小項目;核心資源是核心數據上的一層。它從JSON轉換爲數據對象,看起來非常有前途。由於這個項目沒有大型社區或進一步發展的高級進展,我不確定它是否適合我。
有誰知道類似的項目?還是應該讓我的自己只有一個JSON庫和核心數據?
將JSON轉換爲Core Data並向後轉換是很簡單的。我實際上在Stack Overflow上發佈了一個答案,可以解決這個問題。
JSON and Core Data on the iPhone
除此之外,使用NSURLConnection的推和拉的數據是你真正需要的。這個「庫」似乎是一個額外的不必要的複雜性。
一個想法可能是使用支持在URL級別緩存的常規iPhone URL加載系統的NSURLConnection的URL緩存。這將特別適用於RESTful網絡服務。您可以使用API的內置緩存或實施您自己的聊天策略。 (請參閱here)如果您不想保留緩存,則不需要CoreData。
我會爲此解決方案,我認爲你是對的。 – Andi 2010-08-27 16:12:21
我試過你的實現,我不同意它不需要用於JSON和Core Data對象之間的映射的框架/庫。我可能誤解了一些東西。我做了很多工作來使你的實現符合我的要求。你的實現不關心對象是否已經存在,應該被刪除,修改或創建。我想我會做很多可以普遍使用的邏輯。你的代碼是一個很好的起點,但遠不是我所需要的。 – Andi 2010-08-30 21:58:40
我作爲例子發佈在答案中的代碼就是這樣一個例子。這不是解決您的特定需求的下降。它展示了KVC的強大功能,可以輕鬆實現JSON和Core Data之間的遞歸轉換。框架/庫是沒有用的,因爲你的數據對你的應用程序來說是唯一的,而且通用的解決方案几乎肯定會過於複雜和/或效率低下。根據實例編寫你自己的實現,你將學到更多關於該語言的知識。 – 2010-08-31 00:34:54