gpt4 book ai didi

ios - NSUrlConnection 异步调用类型提前

转载 作者:行者123 更新时间:2023-11-29 04:17:26 24 4
gpt4 key购买 nike

我正在我的应用程序中创建一个类型,用于访问远程休息服务。现在的问题是我使用 NSUrl 进行连接,它是同步的,并且由于 json 对象的循环量很大,因此需要一些时间来解析。这导致我搜索时用户界面卡住。

因此我决定尝试这样做:

[NSURLConnection sendAsynchronousRequest:myRequest
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *taxiData, NSError *error) {

它似乎好一点,但仍然挂起,因为大部分处理是在完成处理程序中完成的,我假设它与主队列相关联。

然后我尝试创建自己的 NSOperationsQueue 或使用dispatch_asynch:

[NSURLConnection sendAsynchronousRequest:myRequest
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *taxiData, NSError *error) {

dispatch_queue_t typeAheadQueue = dispatch_queue_create("typeAhead", NULL);

dispatch_async(typeAheadQueue, ^ {

}];

而且效果很好。唯一的问题是现在 uitableview 刷新数据需要大约 10 秒。我现在可以不间断地打字,但更新 uitableview 存在很大的延迟。

我这样做对吗?如有任何帮助,我们将不胜感激。

谢谢!

最佳答案

检查此线程:run a process in the background while user can still use the UI

考虑将整个 nsurlconnection 调用放在单独的队列中,当需要更新用户界面时,请像 Mundi 建议的那样使用 get_main_queue。

关于ios - NSUrlConnection 异步调用类型提前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13486566/

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