0
在一般情况下,我们都会有这样的我可以在performBlock块中重新使用上下文吗?
dispatch_async(dispatch_get_main_queue(), ^{
NSManagedObjectContext *childContext = [[[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType] autorelease];
childContext.parentContext = self.managedObjectContext;
[childContext performBlock:^{
// do something with childContext and save
}];
});
现在我需要与AFHTTPRequestOperationManager发送网络请求performBlock子/父上下文相关的代码,
dispatch_async(dispatch_get_main_queue(), ^{
NSManagedObjectContext *childContext = [[[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType] autorelease];
childContext.parentContext = self.managedObjectContext;
[childContext performBlock:^{
[RequestOperationManager POST... parameters... success...{
// Can I re-use childContext here?
}];
}];
});
这样我就可以重新使用上下文在一块performBlock?
非常感谢你,重用childContext与另一个performBlock是有意义的。但我不明白你的最后一句话“但是如果你有MOC工作,你打算......”。据我的理解,即使在这种情况下,我仍然可以用你在这里提出的同样的方法去。 – 2015-04-02 03:25:52
@ybbaigo ..用类似于你的伪代码说明。它非常取决于您是否在该“成功”完成块之前和之内编辑MOC中的任何对象。 – stevesliva 2015-04-02 03:34:37
知道了,再次感谢 – 2015-04-02 04:42:54