0

我一直在尋找與此場景相關的帖子,但我沒有清楚如何管理它:我有一個上下文可能有幾個(也許相當多)的管理對象,應用程序可能被用來執行操作,甚至用戶可能正在編輯它們,同時我可以從服務中接收這些對象中的信息更新。在用戶正在編輯它們或應用程序時更新這些對象正在使用它們來執行操作和計算可能是一個問題,並且保存接收到的更新的上下文。當我同時需要保存我收到的更新時,我需要以某種方式「阻止」正在使用的對象。如何在後臺可能更新數據時管理Core Data上下文?

我希望我能夠清楚地解釋這個情景......我該怎麼管理它?

+0

這是一個複雜的問題,完全取決於您的使用案例。核心數據編程指南的「變更管理」部分詳細介紹了幾種情況。 https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/Articles/cdChangeManagement.html#//apple_ref/doc/uid/TP30001201-CJBDBHCB –

回答

0

你想要做的是處理最新的核心數據編程指南中定義的子上下文的服務器更新。然後在主要隊列上下文中將合併策略設置爲適合業務邏輯的任何內容。

從那裏你讓Core Data處理合並。這是Core Data的主要功能之一。

+0

我想,如果數據更新很長 - 運行的任務,我應該使用一個專用隊列中的託管對象上下文...我應該然後創建一個私有隊列併發類型的子上下文嗎?或者用專用隊列併發類型創建一個新的「非子」對象上下文就足夠了? – AppsDev

+0

所有數據處理上下文始終應該是專用隊列。切勿在主要隊列上下文中處理數據,這會阻止用戶界面並給用戶帶來糟糕的體驗。我更喜歡使用子上下文,因爲它減少了代碼複雜度和性能影響,而不是將它們作爲兄弟。 –

相關問題