gpt4 book ai didi

ios - 如何执行需要完成 2 个异步任务的操作

转载 作者:行者123 更新时间:2023-12-01 19:10:28 24 4
gpt4 key购买 nike

我有 2 个 AFNetoworking 操作来获取我的数据,并且我有一个方法需要完成它们。我在互联网上读过我可以有一个 NSOperationQueue 来使 1 个操作依赖于另一个操作完成。虽然在某些情况下这似乎是一个很好的解决方案,但如果我有不适合作为 NSOperation 的代码,这似乎会很困难。

例如(用于说明目的)
1. API调用A获取图片A
2. API调用B获取另一张图片B
3. maskImage 函数将图像 B 屏蔽到 A 上

任何见解都会有所帮助!

最佳答案

我不确定您认为哪种代码不适合 NSOperation ,但我想知道您是否不愿使用 NSOperation源于避免自己编写NSOperation 的愿望子类。幸运的是,使用操作队列要比这简单得多。您可以使用 NSBlockOperationNSInvocationOperation快速创建操作。

我通常会使用 NSBlockOperation :

NSOperation *completionOperation = [NSBlockOperation blockOperationWithBlock:^{
// do my image processing
[self applyMaskToImage];
}];

或者您可以使用 NSInvocationOperation :
NSOperation *completionOperation = [[NSInvocationOperation alloc] initWithTarget:self
selector:@selector(applyMaskToImage)
object:nil];

然后,您可以 (a) 调用 addDependency对于您的两个下载操作中的每一个,使 completionOperation两者都依赖; (b) 添加 completionOperation到你自己的队列。

关于ios - 如何执行需要完成 2 个异步任务的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16879894/

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