我需要在我的应用程序中下载目录及其内容。所以我决定实现一个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
仅在op2
,op3
和ojit_code执行完毕后才能运行。