gpt4 book ai didi

ios - 如何在 NSOperation 中运行异步进程

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:30 27 4
gpt4 key购买 nike

我需要通过我正在处理的应用程序中的后台线程从网络服务更新一些数据。

通常我只是通过 NSOperationQueueNSOperation 的 main() 函数中的同步网络请求来完成此操作。

但是,对于这个特定的数据获取,应用程序需要使用 OAuth 并且我正在使用的 OAuthConsumer 库通过异步请求执行对网络服务的请求委托(delegate)方法回调成功/失败。

我的问题是那些完成的委托(delegate)回调似乎得到了进程,因为(据我所知)当到达 main() 函数的末尾时,我的操作进程被销毁/清理,并且该操作从操作队列的堆栈中弹出。

这准确吗?

如果是这样,是否有通过 NSOperationQueue 执行此操作的解决方案?如果没有,当前以异步方式通过后台线程获取数据的最佳实践是什么,可以处理委托(delegate)回调?

最佳答案

您可以继续运行循环,直到您的操作完成。您要做的是启动异步操作并继续运行运行循环直到它们完成。 complete 标志将是一个实例变量,您将在完成所有异步 (OAuth) 项目时设置该变量。

complete = NO;
//Start async operations
while (!complete) {
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
}

...

-(void)completeCallback
{
complete = YES;
}

关于ios - 如何在 NSOperation 中运行异步进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6712769/

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