我想在NSOperation中按顺序执行代码。 这可以通过实例化NSInvocationOperation轻松完成,例如在我的控制器中:
NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *prepare = [[NSInvocationOperation alloc] initWithTarget:self
selector:@selector(prepare)
object:nil];
NSInvocationOperation *load = [[NSInvocationOperation alloc] initWithTarget:self
selector:@selector(loadData)
object:nil];
[load addDependency:prepare];
这非常有效,而且最重要的是我可以保持操作之间的依赖关系。但正如您所看到的,我必须创建封装操作本身的方法。 我希望将调用实例化为代码片段,并保持依赖性。 因此,我的视图控制器将是干净的,因为从未使用过的方法。
我看到有一个^ block选项,但似乎没有维护依赖。
感谢
答案 0 :(得分:3)
您应该能够在NSOperation
的任何子类中添加依赖项。在您的情况下,您可能需要NSBlockOperation
:
NSOperation *prepare = [NSBlockOperation blockOperationWithBlock:^{
// code here
}];
NSOperation *laod = [NSBlockOperation blockOperationWithBlock:^{
// code here
}];
[load addDependency:prepare];