我需要在我的应用程序中下载目录及其内容。所以我决定实现一个NSOperationQueue,并且我将NSOperation子类化以实现NSURLRequest等。

问题是我一次添加了所有操作,我无法弄清楚何时下载了一个目录的所有文件以更新UI并启用此特定目录。

现在,我必须等待下载所有目录中的所有文件,以便更新UI。

我已经实现了NSOperationQueue的operationCount和NSOperation的isFinished的键值观察,但是我不知道目录中何时包含所有文件!

你有什么主意吗 ?

非常感谢

最佳答案

添加一个“完成” NSOperation,该NSOperations具有一个目录的所有其他doneOp作为依赖项。

像这样的东西:

NSInvocationOperation *doneOp = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(done:) object:nil];

NSInvocationOperation *op1 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(doSomething:) object:nil];
[queue addOperation:op1];
[doneOp addDependency:op1];

NSInvocationOperation *op2 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(doSomething:) object:nil];
[queue addOperation:op2];
[doneOp addDependency:op2];

NSInvocationOperation *op3 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(doSomething:) object:nil];
[queue addOperation:op3];
[doneOp addDependency:op3];

[queue addOperation:doneOp];
op1仅在op2op3和ojit_code执行完毕后才能运行。

10-07 18:36