使用 ASIHTTPREQUEST 库发送同步请求,在 iPhone 中显示活动指示器

发布于 2024-12-24 16:08:52 字数 136 浏览 0 评论 0原文

我想在从服务器发送和接收同步 asihttprequest 时显示活动指示器。我在发送 asihttprequest 时使用了活动指示器,但由于同步请求,它没有在 iPhone 中显示。
关于如何在同步数据传输期间显示活动指示器的任何建议。
谢谢

I want to show activity indicator while sending and receiving synchronous asihttprequest from server. I have used activity indicator as the asihttprequest is send but it did not showing in iPhone due to synchronous request.
Any suggestion how to show activity indicator during synchronous data transfer.
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尽揽少女心 2024-12-31 16:08:53

同步请求在主线程上调用您的活动指示器委托方法 setProgress:

B/c 您在主线程上使用 ASIHTTPRequest 会阻塞 UI,因此对 setProgress: 的调用正在排队等待请求完成后分派,但到此为止当进度已经是 100% 时

在后台线程上调用同步请求

[self performSelectorInBackground:@selector(startSynchronous:) withObject:nil];

要解决此问题,请使用异步请求或使用Edit

请记住创建您自己的自动释放池来处理 startSynchronous: 方法内的内存

-(void)startSynchronous:(BOOL)animate{
       NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

       NSString *autoreleasedString = @"xxx";   

       NSLog(@"%@",autoreleasedString);

       [pool drain];

}

Synchronous request calls your activity indicator delegate method setProgress: on the main thread.

B/c you are using ASIHTTPRequest on the main thread you are blocking the UI, hence calls to setProgress: are queuing to be dispatched after the request is finished, but by that time the progress is already 100%

To solve this use either asynchronous request or call synchronous request on a background thread using

[self performSelectorInBackground:@selector(startSynchronous:) withObject:nil];

Edit

Remember to create your own autorelease pool to handle the memory inside your startSynchronous: method

-(void)startSynchronous:(BOOL)animate{
       NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

       NSString *autoreleasedString = @"xxx";   

       NSLog(@"%@",autoreleasedString);

       [pool drain];

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文