NSManagedObjectContext已經添加了performBlock:和performBlockAndWait:方法來幫助簡化併發。我一直在使用它們 - 可能相當天真 - 我只是意識到有一個我從未真正問過的問題。你可以在其上下文的performBlock之外使用NSManagedObject嗎?
如果我在其中一個performBlock方法中創建了一個NSManagedObject子類,它是'home'線程是它的父上下文的線程 - 在NSPrivateQueueConcurrencyType的情況下可能是一個獨立線程,我沒有其他訪問權限。
那麼,我需要做一個performBlock調用來訪問我的託管對象中包含的數據嗎?或者在使用吸氣劑的情況下是否有背景魔法幫助保護我? (或者制定者,儘管這似乎是一個糟糕的主意......)
非常感謝,我在想什麼是必要的......我希望我錯了。我需要重新觀看他們介紹該技術的WWDC視頻,因爲我不記得他們必須這樣做......然後,我懷疑有很多WWDC視頻需要重新觀看。 – RonLugge
我想補充一點,蘋果工程師明確指出,對'NSManagedObject'的讀取不是線程安全的,因爲核心數據沒有緩存,而且緩存寫入也不是線程安全的 –