一邊唸叨NSConfinementConcurrencyType
的醫生,我閱讀下列澄清
不能使用結合這種併發類型與新 嵌套環境功能
這個句子對我來說很奇怪,因爲我可以做,例如,在NSOperation
的子類中,如
NSManagedObjectContext * localMOC = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSConfinementConcurrencyType];
[localMOC setParentContext:[self mainContext]];
其中mainContext
可以從外部注入並且類型爲NSMainQueueConcurrencyType
。
我錯過了什麼嗎?
嗯,我很確定我不得不幾次改變爲私有隊列類型,因爲我想添加一個子上下文。很確定我得到了奇怪的行爲或使用受限類型作爲父項的錯誤。出於某種原因,這些類型的錯誤並不是每次都會發生,但是當您進行一些更改並檢測到問題時,會在奇數時間出現。 –
更重要的是,限制隊列期望上下文被創建它的線程訪問和改變。如果孩子MOC從另一個線程推送更改,則只是要求未定義的行爲。 – CodaFi
不錯。謝謝你做一些測試。 –