-1
我創建了一個帶有ConcurrencyType NSPrivateQueueConcurrencyType的NSManagedObjectContext。我讀過,我們應該只對每個具有上下文的任務使用Block API。NSPrivateQueueConcurrencyType沒有執行塊
我的問題是如果不使用執行塊API並直接使用上下文執行任務會發生什麼?
我創建了一個帶有ConcurrencyType NSPrivateQueueConcurrencyType的NSManagedObjectContext。我讀過,我們應該只對每個具有上下文的任務使用Block API。NSPrivateQueueConcurrencyType沒有執行塊
我的問題是如果不使用執行塊API並直接使用上下文執行任務會發生什麼?
短:不。
更長:它取決於PrivateConcurrencyType版本NSManagedObjectContext
的內部實現。我認爲,如果您只能從一個線程使用它,並且不會將對象從該上下文傳遞到任何其他線程,它可能會可能工作。或不。但是
如果你想從不同的線程使用這個上下文,當然肯定會有。有些數據可能會隨機消失或重新出現(發生在我身上一次),有些數據可能會崩潰,並且獨角獸可能會讓您的辦公室風波不斷。所以只是不要
禁閉已被棄用。至於其餘的,OP應該遵循這個建議。不要使用沒有performBlock的私有上下文。它最終會破壞數據。 –
@ MarcusS.Zarra,謝謝,我知道這不是建議的,但我忘了它已被棄用。無論如何,我不使用它 :) –
FreeNickname