嗨,我使用Xcode 5+和iOS 7+,并实现NSOperationQueue。我创建了一个NSOpeartion的子类,并说我有50 +操作添加到NSOperationQueue。 isExecuting和isFinished被覆盖在NSOperation`s启动方法 -NSOperation完成后,不从NSOperationQueue中删除?
-(void)start{
// soeme code is here
[self willChangeValueForKey:@"isExecuting"];
_isExecuting = YES;
[self didChangeValueForKey:@"isExecuting"];
[self willChangeValueForKey:@"isFinished"];
_ isFinished = NO;
[self didChangeValueForKey:@"isFinished"];
}
和完成任务后,我编写此代码
[self willChangeValueForKey:@"isExecuting"];
_isExecuting = NO;
[self didChangeValueForKey:@"isExecuting"];
[self willChangeValueForKey:@"isFinished"];
_ isFinished = YES;
[self didChangeValueForKey:@"isFinished"];
MaxConcurrentOperationCount为2但2操作下一个(第三操作)完成之后没有按不会执行主要方法。请给我一些关于何时出现这个问题的说明。
感谢
上述代码是否为您的项目?你没有设置_isFinished ... – Volker
谢谢,这是我的错误,我编辑了上面的代码。 –