核心数据:managedObjectContext在哪里使用performBlock或performBlockAndWait

时间:2014-12-22 19:11:26

标签: multithreading core-data parent-child nsmanagedobject nsmanagedobjectcontext

使用Parent/Child上下文模型将Core Datamultithreading一起使用,何时应该调用performBlockperformBlockAndWait函数?

只有在将更改从Child context保存到Parent context时才能调用它们吗?因此,在您对Core Data记录进行了更改后(在子上下文中)?

或者您在对核心数据记录进行实际更改时是否会调用performBlock?以及将更改保存到子级时,还有父上下文?

1 个答案:

答案 0 :(得分:2)

一般规则是,在执行涉及该上下文的任何操作时,您应始终使用performBlock:performBlockAndWait:,包括只读取对象。唯一的例外是主队列上下文(如果您愿意,可以使用performBlock:,但是如果您在主线程上没有要求)和线程限制上下文(不推荐使用)无论如何,你可能没有理由再使用了。)