2011-12-30 86 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