0

我創建了一個訪問數據存儲並返回表示Core數據實體的對象的單例類。在普通線程中這很好,但我擔心從後臺線程上運行的另一個類訪問此單例方法,因爲後臺線程將使用其自身的管理對象上下文副本運行。後臺單線程數據存儲線程

當試圖從後臺線程調用單例時,是否需要創建一個新的單例實例並傳入後臺線程的託管對象上下文的副本,或者我可以安全地訪問單例方法並允許它使用它從應用程序代理內部檢索的共享託管對象上下文?

+0

「單身人士的新鮮事例」這是怎麼發生的? – Abizern

+0

Instanciating通過初始化事件的單身人士,它給你一個非單身副本 –

+0

那麼有一個單身人士有什麼意義?如果你打算在任何時候創建你自己的產品 - 首先有一個單身人士有什麼意義? – Abizern

回答

2

讓你的數據管理類使所有相關核心數據調用與performBlock:performBlock:andWait:

這樣的調用將始終在一個線程安全的方式進行。

然而,就個人而言,我通常編寫數據管理器,以便在主線程上調用它,並且它負責在任何線程上進行任何進一步調用。

+0

如果在主線程上執行該操作,則不要你得到UI阻塞? –

+0

如果數據管理器在後臺線程上進行實際調用,則不應該如此。我的觀點是你有一個數據管理器對象。應該由該對象決定在前臺線程上執行後臺操作,因爲這是最有效的。 – Abizern

+0

我會誠實的。我從未考慮過這種方法。我目前從視圖控制器啓動後臺線程,並從中調用數據管理器。我感謝你的建議,消化這個想法並評估它需要一段時間,所以我會將你的答案標記爲正確的答案,然後離開並考慮這個問題。謝謝 。 –