我正在学习 iOS,当谈到 GCD 时,我感到很困惑。让我们把它排除在外,我正在编写一个从互联网获取数据的小程序。这是我的视图控制器
NSMutableArray dataArray = [NSMutableArray array];
[querysomethingwithblock:(^ {
//do some stuff here
[otherquerywithblock:( ^ {
//do some stuff here
// Here I got the data from internet
// Do loop action
[dataArray addObject:data];
})];
})];
// here I want to perform some actions only after get data from internet
[self performAction:dataArray];
我怎样才能达到这个目的。实际上,[self performAction:dataArray]
总是在我得到数据之前被解雇。我试图玩 GCD 但没有运气。
这是我迄今为止尝试过的一些模式
dispatch_async(queue, ^{
// Do query stuff here
dispatch_async(dispatch_get_mainqueue(), ^{
//perform action here
});
{;
或使用dispatch_group_async
, dispatch_group_wait
,dispatch_group_notify
我现在可以处理的唯一方法是使用dispatch_after
,但关键是下载时间是可变的,在这里有一个特定的时间不是一个好习惯
非常感谢您的任何建议。