gpt4 book ai didi

iphone - 使用 NSURLConnection 执行 sendSynchronousRequest 时显示加载屏幕

转载 作者:行者123 更新时间:2023-11-29 05:00:46 26 4
gpt4 key购买 nike

按下按钮时,我需要登录。在调用 sendSynchronousRequest 时,我希望有一个“正在加载”指示器。据我所知,在发出 URL 请求之前添加加载屏幕是行不通的,因为直到 URL 请求返​​回结果后才到达显示代码。我尝试了几件事:

  • 使用通知中心:添加观察者并发送消息,然后启动加载屏幕。在选择器中执行实际请求(删除了加载 View )。这似乎不起作用。
  • 为 URL 请求创建一个单独的线程(在非网络/非主线程中使用网络 block 给我带来了奇怪的错误
  • 为加载 View 创建一个单独的线程(没有显示任何内容!)

我想得到两个回复:1)什么是快速而肮脏(但实用,与 iOS 3.2+ 一起使用)的方法? 2)正确的做法是什么? :)

谢谢

最佳答案

快速而肮脏的方式:

- (void)startLogin:(id)sender {
NSURLRequest *request = ...;
[activityIndicator startAnimating]; // or whatever you need to get your loading screen to show
[self performSelector:@selector(startRequest:) withObject:request afterDelay:0.0];
}

- (void)startRequest:(NSURLRequest *)request {
//Do your actual request here...
}

更好一点:在后台线程上执行请求(忘记在后台线程上执行动画,UIKit 不是线程安全的)

更好:从主线程使用 NSURLConnection 的异步方法。这样,您就不会阻止(如果您愿意,您可以使用“屏蔽” View 来阻止 UI),如果需要很长时间(您永远不知道您的用户在哪种网络上),您可以取消请求不必担心线程安全。

关于iphone - 使用 NSURLConnection 执行 sendSynchronousRequest 时显示加载屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7030184/

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