簡體   English   中英

CoreData並發(用於與CloudKit同步)

[英]CoreData concurrency (for sync with CloudKit)

在我的一個應用程序中,我想通過CloudKit啟用同步。 該應用程序本身使用CoreData存儲數據。 我無法使用CoreData + iCloud,因為我需要能夠跟蹤使用上述設置無法進行的更改。

我面臨的一個明顯挑戰是,CloudKit操作將在后台線程上發生,因此我需要支持CoreData堆棧的並發性。

假設我有一些CoreData實體要與CloudKit同步。 要進行后台同步,我需要創建一個單獨的托管對象上下文。 當此上下文獲取在其他設備上對我的實體所做的更改時,我要保存這些更改。

但是,問題在於,在執行提取操作期間,用戶可能已更改了給定實體的某些屬性,而我現在仍然堅持在兩個上下文中都擁有一些重要信息的實體。 我不能只選擇保存哪一個-我需要合並更改。

不幸的是,我不知道我需要采取哪種方法才能手動同步這些更改。 我已經檢查了可能的技術(親子,多個上下文,多個商店協調員),但是我仍然不明白我需要選擇哪種方法。

有人可以幫我解決這種困惑嗎?

對我來說,最理想的解決方案是,每當同步上下文嘗試將更改合並到也有一些更改的主上下文時,我都會遇到沖突。 在這種情況下,我可以輕松決定應該更新哪些屬性,但是我真的不知道該如何完成...

在Apple WWDC 2014中,他們就此進行了一次會議。 這是筆錄,您也可以輕松找到視頻; 承擔您的Apple開發人員。

http://asciiwwdc.com/2014/sessions/231

簡而言之,蘋果工程師介紹了一個使用變更令牌的非常簡單的示例。 解決解決數據更改沖突問題的行業標准解決方案。

Ray Wenderlich網站在雲工具包和核心數據上也有一些出色的VIDEO,它是一項訂閱服務,盡管每月僅花20美元就值得,而且我與他沒有任何關系。 我只是一個訂閱者。 谷歌他,你找到他的網站。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM