我正在嘗試爲使用外部數據源的iPhone編寫核心數據應用程序。我沒有真正使用Core Data來堅持我的對象,而是用於對象生命週期管理。關於如何將本地數據用於核心數據,我有一個相當不錯的主意,但已經遇到了遠程數據的一些問題。我將以Flickr的API爲例。使用核心數據訪問遠程數據的模式?
第一件事是,如果我需要說,最近的照片列表,我需要從外部數據源抓住他們。我檢索完列表後,似乎應該爲每張照片迭代並創建託管對象。此時,我可以繼續使用我的代碼,並使用標準Core Data API設置提取請求並檢索關於狗的照片子集。
但是,如果我然後想要繼續並檢索用戶的照片列表呢?由於這兩個數據集可能會相交,因此我是否必須對現有數據執行獲取請求,更新現有數據,然後插入新對象?
-
在舊的模式,我只想對每個數據集的不同的數據結構,並適當地訪問它們。最近的照片集和和用戶照片集。但是因爲Core Data的一般模式似乎是使用一個託管對象上下文,所以我似乎(我可能錯了)必須將我的數據與主數據池合併。但是,這只是爲了獲取照片清單而花費很大的開銷。我應該爲不同的集合創建一個單獨的託管對象上下文嗎?核心數據是否應該在這裏使用?
我認爲我發現對Core Data有吸引力的是,之前(對於Web服務),我會對某些數據提出請求,並在請求中對其進行過濾,或者在代碼中對其進行過濾並生成一個我將使用的列表。使用核心數據,我可以獲取對象列表,將它們添加到我的池中(根據需要更新舊對象),然後對其進行查詢。然而,我可以用這種方法看到一個問題,如果對象被外部刪除,我不知道,因爲我保留了我的舊數據。
我的基地在這裏嗎?人們有沒有處理遠程數據和核心數據的模式? :)我發現有幾個人說他們已經做到了,而且這對他們來說很有用,但是卻很少有例子。謝謝。
你能對你想要的更具體嗎? '使用外部數據源'非常模糊。這聽起來像你想在本地鏡像一個外部數據庫的一部分。你是否需要進行本地改變,以獲得提升?關於衝突呢?這是一個困難的問題,更多的細節將有助於建議方向。 – 2009-11-21 03:59:37
也許是一個陳舊的線程,我會試圖在後臺線程中獲取東西,並將它們寫入永久存儲區,並讓通知從那裏到達主線程 - 不確定它會工作,但會很好如果它確實有 – bshirley 2011-06-02 01:46:05