一边念叨NSConfinementConcurrencyType
的医生,我阅读下列澄清
不能使用结合这种并发类型与新 嵌套环境功能
这个句子对我来说很奇怪,因为我可以做,例如,在NSOperation
的子类中,如
NSManagedObjectContext * localMOC = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSConfinementConcurrencyType];
[localMOC setParentContext:[self mainContext]];
其中mainContext
可以从外部注入并且类型为NSMainQueueConcurrencyType
。
我错过了什么吗?
嗯,我很确定我不得不几次改变为私有队列类型,因为我想添加一个子上下文。很确定我得到了奇怪的行为或使用受限类型作为父项的错误。出于某种原因,这些类型的错误并不是每次都会发生,但是当您进行一些更改并检测到问题时,会在奇数时间出现。 –
更重要的是,限制队列期望上下文被创建它的线程访问和改变。如果孩子MOC从另一个线程推送更改,则只是要求未定义的行为。 – CodaFi
不错。谢谢你做一些测试。 –