NSInvocationOperation отправляет одно и то же уведомление два раза в основной поток - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть UITableViewController, где я создаю NSInvocationOperation и добавляю его в NSOperationQueue следующим образом:

-(void) doOperation{
NSInvocationOperation *imgSizeOperation = [[[NSInvocationOperation alloc]    initWithTarget:self selector:@selector(calculateImg) object:nil] autorelease];
[_operationQueue  addOperation:imgSizeOperation];
}

В методе Calculate я делаю некоторые вычисления, а затем хочу опубликовать уведомление в основной теме:

-(void) calculateImg{
// calculate

[self performSelectorOnMainThread:@selector(fireNotification) withObject:nil waitUntilDone:YES];
}

-(void) fireNotification{
[[NSNotificationCenter defaultCenter] postNotificationName:@"ImageCalculatorEndNotification" object:nil] ;   
}

-(void) imageCalculatorEndNotification:(id) sender{
NSLog(@"Image calculator end notification");
}

Что происходит, так это то, что я вижу в журнале сообщение "Уведомление о завершении калькулятора изображений" два раза. У меня вопрос, почему в основной ветке два раза отправляется уведомление? Что не так с этим кодом?

...