CoreData中NSConfinementConcurrencyType的用法是什么?

时间:2016-03-16 11:15:20

标签: ios core-data

我对NSManagedObjectContext的类型有一些疑问。让我们看一下关于NSConfinementConcurrencyType的苹果文档:

  

限制(NSConfinementConcurrencyType)

  为了向后兼容,这是默认设置。您保证除了您创建它之外的任何线程都不会使用上下文。通常,为了使行为明确,我们鼓励您使用其他类型之一。

  如果托管对象上下文的父存储是持久性存储协调器,则只能使用此并发类型。

我无法理解为什么这种类型只能由父存储是持久存储协调器的对象上下文使用。例如,我创建一个NSManagedObjectContext使用这种类型,并将它的父存储设置为另一个上下文,是否会产生一些错误。

1 个答案:

答案 0 :(得分:5)

实际答案是,从iOS 9开始,NSConfinementConcurrencyType已弃用,因此您不应该使用 ,以及何时可以或不可以使用它在这一点上使用是无关紧要的。

我怀疑,更深层次的答案是文档中“向后兼容性......”的一个方面。队列限制与嵌套上下文同时添加。可能该计划总是最终弃用NSConfinementConcurrencyType,因此没有努力更新它以使用嵌套上下文。只有Core Data团队确切知道,但是很可能存在与使用嵌套上下文的限制并发相关的一些重要错误,但修复它们并不是优先考虑的问题。