2014-12-03 74 views
1

在我的應用我使用RestKit v0.23.3,我需要調用4個Web服務順序。我正在做這個沒有任何問題,可以在網上找到各種教程。Restkit和核心數據回滾

我的問題是,我需要確保下載所有4個服務或數據可能不一致。

現在我的問題:如果其中一個Web服務在下載/映射操作期間失敗,我可以在CoreData上進行回滾嗎?還是有一種模式可以禁用RestKit具有的「自動保存到持久性存儲」功能,並且只有在最後一次Web服務結束時才「手動」保存?

在此先感謝您的幫助。

+0

您是否嘗試過使用NSUndoManager?儘管根據我的經驗,NSUndoManager並不總是可靠的。 – 2014-12-04 05:13:58

+0

還沒有,但我可以試一試,我感謝你的意見。無論如何,我可以看到的唯一可靠的方式是通過NSDictionary,而不是直接將對象映射到CoreData實體,但我真的不知道這是否是最佳做法。 – Danno 2014-12-04 08:07:16

回答

0

如果這是真的需要那麼我會傾向於使用基於磁盤的解決方案 - 在你開始之前的任何潛在的破壞性/破壞操作可以確保所有內容將保存並在磁盤上的數據存儲的副本(注即可能需要保存多個文件才能最好使用API​​,如 migratePersistentStore:toURL:options:withType:error:)。現在,如果您遇到問題,可以將Core Data堆棧關閉,從磁盤中恢復,然後重新創建堆棧。這比嘗試防止保存或使用撤銷管理器更安全可靠,因爲加載過程在多個線程中運行,所以您確實需要保存才能運行。

+0

這聽起來很好的解決方案,適用於不經常發生的服務調用中發生的不經常更改。 – 2014-12-04 10:11:26