我有一个NSOperation
要同时运行的子类。
我的理解是,要使并发操作起作用:
- 我需要定义
isConcurrent
返回YES
。 - 我需要定义
start
方法 - 我需要在完成时发送 KVO
isExecuting
通知isFinished
。 - 当和
@synthesize
的值发生更改时,使用将自动发送适当的 KVO 通知。isExecuting
isFinished
尽管如此,我已经验证我的队列永远不会移动到下一个项目。
这是我的代码的主要内容:
@interface MyOperation()
@property (readwrite) BOOL isExecuting;
@property (readwrite) BOOL isFinished;
@end
@implementation MyOperation
- (void)start
{
@autoreleasepool {
self.isExecuting = YES;
self.HTTPOperation = [[AFHTTPRequestOperation alloc] initWithRequest: URLRequest];
_HTTPOperation.completionBlock = [^{
[self completed];
self.isExecuting = NO;
self.isFinished = YES;
} copy];
[_HTTPOperation start];
}
}
- (BOOL)isConcurrent
{
return YES;
}
- (void)completed
{
}
@end
我错过了什么?
(这是在 iPhone 上,但我无法想象这很重要。)