我有一个NSManagedObject类型的全局实例。对于全局实例,它具有很少的成员变量,它们是以下列方式声明的@dynamic属性
@property (retain) NSString *value;
我有几个线程可以执行以下简单操作
myInstance.value = [NSString stringWithString:newValue];
所以问题是 - 我需要同步上面的操作吗?或者它是否已经自然是线程安全的(因为它们由NSManagedObject照顾)?
答案 0 :(得分:3)
根据文档,这不是线程安全的。有一篇关于线程和核心数据的文章,您可以阅读here。从本质上讲,它表示要正确使用Core Data的线程,每个线程需要一个单独的托管对象上下文。在“如果不使用线程包含”部分中,它特别指出跨线程读取和变异管理对象都会产生不良影响。