2011-12-30 30 views
1

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

+0

请注意,ASIHTTPRequest没有积极开发了:http://allseeing-i.com/%5Brequest_release%5D – vikingosegundo 2011-12-30 16:35:30

回答

2

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

二/三您正在使用ASIHTTPRequest主线程您正在阻塞UI,因此调用setProgress:排队的请求完成后进行布控,但那时的进步已经是100%

为了解决这个兼用异步请求或使用

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

调用在后台线程同步请求编辑

记住吨Ø创建自己的自动释放池来处理你的startSynchronous里面的内存:方法

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

     NSString *autoreleasedString = @"xxx"; 

     NSLog(@"%@",autoreleasedString); 

     [pool drain]; 

} 
+0

谢谢您回复,使用您的代码行解决我的问题,但在控制台窗口中显示'*** __ NSAutoreleaseNoPool():类NSConcreteMutableData的对象0x6396660 autoreleased没有到位的地方 - 只是泄漏“。凸轮你解释我做错了什么? – 2011-12-30 17:33:33

+0

当你调用一个函数在其他线程中执行,然后主线程,你需要照顾自己的自我释放对象。我将编辑代码以显示它。 – Cyprian 2011-12-30 17:42:08