从MOC的`performBlock`调用中使用NSManagedObject

时间:2017-09-26 22:51:04

标签: objective-c nsmanagedobject nsmanagedobjectcontext

我知道我不应该在线程之间传递托管对象,但我想知道是否直接从已注册的MOC访问托管对象是正常的。

例如:

NSManagedObjectContext *managedObjectContext = aManagedObject.managedObjectContext;

[managedObjectContext performBlock:^{
    aManagedObject.someProperty = "SomeValue";
    [aManagedObject.managedObjectContext save:nil];
}];

或者我应该在这个例子中使用objectID吗?

1 个答案:

答案 0 :(得分:0)

由于块在上下文的队列中运行,并且因为您从对象获取上下文。您拥有的代码是在正确的上下文中修改对象,所以我没有看到它的问题。