在一个线程中初始化NSManagedContext
然后将其传递给另一个在performBlock:
内进行插入/取出的线程是否安全?
所以https://stackoverflow.com/a/12876800/2645683提及performBlock:
并提到我的问题,但这还不够。它没有明确说明创建上下文的线程,执行块的线程,以及这些将是不同线程的事实。
答案https://stackoverflow.com/a/12874637/2645683似乎已经过时了。由于您无法为每个线程设置托管上下文并使用performBlock:
,因为块可以在不同的线程上执行。
答案 0 :(得分:1)
在一个线程中初始化NSManagedContext然后将其传递到另一个在
performBlock:
内进行插入/取出的线程是否安全?
如果您在performBlock:
来电中执行触及核心数据的所有内容,那就安全了。插入和提取,当然。但是,无论何时以任何方式触摸托管对象,包括使用已经提取的对象的属性值。
你提到“......你不能为每个线程设置托管上下文并使用performBlock:...”这不是真的 - 你可以根据需要拥有尽可能多的托管对象上下文,并且使用performBlock:
。