我的情况是:
- 我有用户
- 每个用户都有一些可以通过用户对象获取的历史数据
我想做的是:
- 最多 2 个用户必须同时获取他们的历史数据(这就是我想使用 NSOperationQueue 的原因)
- 当任何用户完成获取其历史数据时,我需要得到通知
- 当每个用户完成获取他们的历史数据时,我需要得到通知
我要问的是:
- 既然我无法使用下面的代码完成它,我该如何实现我想做的事情?
任何帮助表示赞赏。
NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];
[operationQueue setMaxConcurrentOperationCount:2];
for (User *user in users) {
NSBlockOperation *operationObject = [NSBlockOperation blockOperationWithBlock:^{
[user loadHistoryData:^{
[NSNotificationCenter postNotificationToMainThread:@"oneUserFetchedHistory"];
}];
}];
[operationQueue addOperation:operationObject];
}
这个问题与这个问题不同我不想链接任何请求。我只想知道他们什么时候都完成了执行。
这个答案只有一个操作队列的完成块。
这个答案提供了一种让操作阻塞等到异步调用的方法loadHistoryData
完成的方法。作为写作setSuspended
我找不到我需要的答案。有没有?