已解决,原来 GCD 中有个 dispatch_group 是专门解决这种问题的...
看来得找个时间专门学习 GCD ...
```objc
dispatch_group_t group = dispatch_group_create();
for (ALUser *user in self.users) {
dispatch_group_enter(group);
[ALFeed updateByUser:user completion:^{
dispatch_group_leave(group);
}];
}
dispatch_group_notify(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
[self.tableView reloadData];
});
```
参考:
* [Waiting on Groups of Queued Tasks](
https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html#//apple_ref/doc/uid/TP40008091-CH102-SW25)
* [Using dispatch groups to wait for multiple web services](
http://commandshift.co.uk/blog/2014/03/19/using-dispatch-groups-to-wait-for-multiple-web-services/)。