gpt4 book ai didi

iphone - NSoperation如何使用它来等待事件?

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

我有应用程序通过NSURLConnection连接到服务器(发送发布请求),并从服务器接收一些数据。我希望在后台在单独的线程上发生这种情况。我已经看到NSOperation用于此目的-如本教程所示-

Concurrent Operations Demystified

但这是一个较旧的教程(可追溯到2009年),也许找到了一些新的方法来做到这一点。基本上我想做的是-启动NSOperation,等待它接收数据(因为如果我不线程将结束,并且数据将丢失),然后发出数据准备就绪的信号(也许通过NSNotificationCentre)

我发出的请求是异步的,因此我可以使用进度条来等待数据。我是否可以在NSOperation块中调用某些导致线程休眠直到接收到数据的东西?就像某个等待特定条件的循环?

最佳答案

该教程已经过时,今天您可以更轻松地编写相同的代码。为您的请求创建一个NSOperationQueue,并将NSOperationBlock与同步NSURLConnection结合使用以下载数据:

[queue addOperationWithBlock:^{
NSError *error = nil;
NSHTTPURLResponse *response = nil;
NSMutableURLRequest *request = /* build request */;
NSData *data = [NSURLConnection
sendSynchronousRequest:request
returningResponse:&response
error:&error];
/* handle errors and callbacks */
}];

队列使您可以设置并发请求数的限制,还支持免费取消(当然,在请求内部不取消)。

关于iphone - NSoperation如何使用它来等待事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11555317/

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