在线程之间传递 NSManagedObjectContext

Pass NSManagedObjectContext between threads

在一个线程中初始化 NSManagedContext 然后将其传递给另一个线程 performBlock: 中的 inserts/fetches 是否安全?

所以 提到了 performBlock: 并与我的问题相关,但还不够。它没有明确说明创建上下文的线程和执行块的线程,事实上它们将是不同的线程。

答案 似乎已经过时了。由于您不能为每个线程管理上下文并使用 performBlock: 因为块可以在不同的线程上执行。

Is it safe to initialize NSManagedContext in one thread and then pass it to another thread where you do inserts/fetches inside performBlock:?

如果您在 performBlock: 调用中执行 涉及核心数据 的所有操作,那是安全的。当然,插入和提取。而且任何时候您以任何方式接触托管对象,包括使用您已经获取的对象的 属性 值。

您提到 “...您不能为每个线程管理上下文并使用 performBlock:...”那不是真的——您可以拥有尽可能多的托管对象上下文根据需要,并与它们一起使用 performBlock: