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