在线程之间传递 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:
。
在一个线程中初始化 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:
。