簡體   English   中英

核心數據堆棧,只有使用NSPrivateQueueConcurrencyType初始化的單個上下文

[英]Core Data stack with only a single context initialized with NSPrivateQueueConcurrencyType

我正在開發一個需要多次異步下載並將其內容保存到Core Data實體的應用程序。 其中一個下載很大,並注意到在創建/寫入托管對象上下文時UI被阻止。 我的研究讓我閱讀了並發的核心數據設置,並開始實現其中之一。 但是我遇到了問題並花了很多時間來糾正問題。

在繼續之前,我正在考慮簡單地使用NSPrivateQueueConcurrencyType設置單個MOC。 我讀到的任何內容都沒有提到這樣做。 這樣我可以選擇在后台執行MOC操作,或者像往常一樣使用主線程,同時保持單個MOC。

這是一個好方法嗎? 如果沒有,它有什么問題? 我懷疑這是正確的方法,因為如果是, NSPrivateQueueConcurrencyType支配NSMainQueueConcurrencyType並且沒有理由擁有后者。

NSPrivateQueueConcurrencyType MOC用於后台任務沒有任何問題。

但您可能仍需要一個NSMainQueueConcurrencyType MOC。 文檔

上下文與主隊列相關聯,因此與應用程序的事件循環相關聯,但它在其他方面類似於基於私有隊列的上下文。 您可以將此隊列類型用於鏈接到控制器的上下文和僅需要在主線程上使用的UI對象。

例如,對於獲取的結果控制器,您將使用NSMainQueueConcurrencyType MOC。

暫無
暫無

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

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