2012-05-02 23 views
0

我正在構建iPad和Web服務器之間的同步功能。我使用的方法非常接近described here。我只有一種類型的對象,我們稱它爲一個Story,它必須被同步。它是一個核心數據實體(管理對象)。iOS同步 - 核心數據對象知道必須推送到服務器的好方法是什麼?

我必須解決的其餘問題是,知道「什麼時候發生了變化,需要與服務器同步」。一種方法是去查找修改故事的每一段代碼,並設置一些需要同步標誌。這看起來並不優雅,似乎隨着時間的推移,開發人員可能會忘記更新新的修改類型的標誌。

核心數據對象是否有辦法觀察自己,所以任何時候做任何改變,都會執行一個特定的方法?這會讓這很容易。

另一個選項可能是在對託管對象上下文執行保存操作之前使用isUpdated方法。您只需要在一個地方撥打電話即可,或者在您保存的每個地方進行此操作(聽起來像是第一個選項)。我想我可以製作一個幫助器方法,在保存前查看所有Story對象,看看是否有任何人需要設置他們的標誌。唯一的缺點是我會遍歷系統中的所有Story對象以進行任何保存,即使對於與Story無關的保存也是如此。

無論如何,我會停止嘗試大聲猜測解決方案 - 有沒有人有一個很好的方法來做到這一點的經驗?

回答

3

SDK已經涵蓋。請參閱NSManagedObjectContext class reference,在頁面的最後,MOC將發佈您可以訂閱的通知,包括NSManagedObjectContextObjectsDidChangeNotification。您可以聽取這些信息並進行更新調用,幾乎與保存MOC一致。

+0

謝謝。這比我開始嘗試的willSave更好,主要是因爲當我進行完全同步時,我可以停止觀察它。 –

相關問題