У меня была такая же проблема при сборке под iOS 5. В итоге я создал флаг с именем operationStarted
, который по умолчанию был NO
, и я переключился на YES
при вызове метода start
.Затем в моем методе finish
(где я генерирую уведомления KVO) я проверил значение флага перед запуском уведомлений.
Определение флага выглядит следующим образом:
@property (nonatomic, assign, getter=isOperationStarted) BOOL operationStarted;
Метод start
:
- (void)start {
[self setOperationStarted:YES];
...
}
Мой finish
метод, который вызывается, когда операция завершается или отменяется:
- (void)finish {
if (![self isOperationStarted]) return;
[self willChangeValueForKey:@"isExecuting"];
executing = NO;
[self didChangeValueForKey:@"isExecuting"];
[self willChangeValueForKey:@"isFinished"];
finished = YES;
[self didChangeValueForKey:@"isFinished"];
}
Это привело к решению проблемы для меня.Надеюсь, это поможет кому-то еще.