Вы используете метод метода PerformSelectorOnMainThread (чтобы объединить изменения из нового экземпляра ManagedObjectContext)?
я сделать что-то подобное в моих операций (CTX мой экземпляр MOC):
Первый регистр для уведомлений:
// Register context with the notification center
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(mergeChanges:)
name:NSManagedObjectContextDidSaveNotification
object:ctx];
Затем, когда вам нужно сохранить контекст:
if ([ctx hasChanges]) {
error = nil;
// Save the context.
if (![ctx save:&error])
{
// Do something with the error
}
// Clear out the scratchpad
[ctx reset];
}
И затем метод, который объединяет с основным MOC:
- (void)mergeChanges:(NSNotification *)notification
{
id appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *mainContext = [appDelegate managedObjectContext];
// Merge changes into the main context on the main thread
[mainContext performSelectorOnMainThread:@selector(mergeChangesFromContextDidSaveNotification:)
withObject:notification
waitUntilDone:NO];
// NSLog(@"Merged Changes");
}
Надеется, что это помогает
Да, я использую это, но я думаю, что он выходит из строя, потому что делегаты призвали mainThread так, если я сохраню свой отдельный созданный контекст, я получаю сообщение об ошибке, потому что это не сохраняется на отдельном потоке. Это мое предложение, но, возможно, это не проблема. – MoFuRo
Вы не можете создать экземпляр ASINetworkQueue внутри NSOperation и обработать метод делегирования там также? Я делаю то же самое (хотя просто использую ASIHttpRequest) и обрабатываю метод делегата внутри NSOperation, и он отлично работает. –