gpt4 book ai didi

ios - 第一个函数执行完成后如何调用第二个函数?

转载 作者:行者123 更新时间:2023-11-29 01:07:43 25 4
gpt4 key购买 nike

我的代码中有 3 个函数。我为管理函数执行队列所做的代码。

 [self firstMethodWithOnComplete:^{
[self SecongMethodWithOnComplete:^{
dispatch_async(dispatch_get_main_queue(), ^{
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(CallThirdMethod) userInfo:nil repeats:NO];
});
}];
}];

第一个和第二个函数

- (void)firstMethodWithOnComplete:(void (^)(void))onComplete {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
//processing here.....

[self CallFirstMethod];
onComplete();
});
}

- (void)SecongMethodWithOnComplete:(void (^)(void))onComplete {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
//processing here.....
[self CallSecondMethod];
onComplete();
});
}

问题是我无法管理他们的执行。我希望执行顺序是这样的:第二个函数仅在第一个函数结束时执行,第三个函数在第二个函数执行结束时执行。请帮我解决这个问题或提出任何适当的建议。

最佳答案

您可以使用调度组来满足这种需求,下面我发布了我使用过的示例代码

__block NSError *configError = nil;
__block NSError *preferenceError = nil;

// Create the dispatch group
dispatch_group_t serviceGroup = dispatch_group_create();


dispatch_group_enter(serviceGroup);
// Start the first async service
dispatch_group_leave(serviceGroup);


dispatch_group_enter(serviceGroup);
// Start the second async service
dispatch_group_leave(serviceGroup);

dispatch_group_notify(serviceGroup,dispatch_get_main_queue(),^{
//Update UI in this block of code
});

关于ios - 第一个函数执行完成后如何调用第二个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36147763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com