2010-08-12 29 views
0

我正在處理應用程序解析XML文件中的數據,將其保存到持久存儲並填充表視圖的項目。每當應用程序打開時,如果有可用的互聯網連接,持久性存儲就會被循環使用,並且XML會因頻繁更新而再次被解析。如果沒有互聯網連接可用,我只需加載保存在我的持久存儲中的最新解析數據。使用核心數據和XML解析將對象保存爲收藏

一旦解析完成,用戶就可以瀏覽對象並可能將它們標記爲收藏夾。

完成此操作後,我希望能夠在單獨的標籤欄中顯示這些「標記爲收藏」對象,並在用戶將它們標記爲收藏夾時保留它們。

這可以很容易做,如果從我的持久性存儲中的數據沒有被回收如此頻繁,但因爲這是沒有的情況下,我想找到的最佳方式:

  1. 創建附加持久性商店;
  2. 能夠另一

或者

您能否提供實現這個更好的方式從一個商店複製的對象?

非常感謝,

羅傑里奧

回答

1

你可以伸出他們標誌作爲最喜歡的,然後不要刪除或模型進行更新。沒有必要在任何地方複製對象,就像這樣簡單。

在名爲「favorite」的實體中放置布爾標誌,然後如果該標誌設置爲YES,則不要在下一次XML刷新時更新該實體,也不要刪除它。

+1

馬庫斯您好,感謝您的答覆。這一切都是有道理的,但我將如何處理不再是XML解析的一部分的對象,但仍然被用戶標記爲最喜歡的對象。下面是一個例子: - Feed解析並將對象ABC保存到永久存儲器,添加到「最新更新」視圖 - 對象ABC被用戶標記爲收藏夾,因此它也被添加到「最喜歡」視圖 - XML文件是更新和對象ABC不再是它的一部分。下一次文件解析時,它應該從「最新更新」視圖中消失,但仍然可以在「收藏夾」視圖下使用。 再次感謝! – Rog 2010-08-13 08:31:12

0

我不知道你的問題仍然是最新的,但我傾向於使用一個額外的標誌爲您的更新列表像馬庫斯已經解釋。所以你只需要比較標誌,這是與兩個單獨列表比較的高性能完成的。尤其是如果你保存每一個數據兩次,你會在記憶中遇到問題。

1

對於任何對這個問題的解決方案感興趣的人來說,事實證明Marcus的推薦方式比現在預期的要好,並且更容易實現。

的基本邏輯流程,使這項工作是:從Web服務

  1. 下載XML飼料

  2. 做標記爲收藏從持久存儲

  3. 實施對象的獲取請求用於比較正在解析的新對象和保存爲收藏夾的對象的uniqueID的邏輯。

  4. 如果找到匹配項,請刪除現有/已保存的對象,繼續解析新對象並將其標記爲收藏夾(僅當您的對象可能具有附加/更新數據時才需要)該對象被解析並保持原始狀態以節省額外的處理時間)。

  5. 使用NSFetchedResultsController來管理爲您更新視圖。我個人對我的收藏夾擁有單獨的視圖,並使用謂詞僅顯示標記爲收藏的對象。

乾杯, 羅格