1

我想在 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 选项,但似乎没有维护依赖关系。

谢谢

4

1 回答 1

3

您应该能够使用NSOperation. 在您的情况下,您可能想要NSBlockOperation

NSOperation *prepare = [NSBlockOperation blockOperationWithBlock:^{
    // code here
}];

NSOperation *laod = [NSBlockOperation blockOperationWithBlock:^{
    // code here
}];

[load addDependency:prepare];
于 2012-06-27T15:58:52.643 回答