我想從我的ftp服務器上使用Chilkat庫獲取目錄文件列表。 在這種情況下,我想在進程運行時爲UIActivityIndicatorView設置動畫。但問題是,UIActivityIndicatorView從未開始動畫。我使用的代碼是:把一個布爾假在一個runloop內
[self.activityIndicator startAnimating];
[selfgetListFromPath:ftpPath withConnection:ftpConnect];
[self.activityIndicator stopAnimating];
activityIndicator是UIActivityIndicatorView
對象,ftpPath
是FTP服務器我的文件路徑的NSString的,並且getListFromPath
是使用奇爾卡特算法從FTP服務器獲取列表的方法,ftpConnect
是FTP連接類的對象。
我嘗試使用NSRunLoop之前調用getListFromPath
功能,所以我改變了我的代碼爲:
[self.activityIndicator startAnimating];
BOOL waitingOnProcessing = YES;
NSRunLoop *currentRunLoop = [NSRunLoop currentRunLoop];
while (waitingOnProcessing && [currentRunLoop runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]) {
}
[self getListFromPath:ftpPath withConnection:ftpConnect];
[self.activityIndicator stopAnimating];
這使activityIndicator
動畫,但getListFromPath
從來沒有發射。試用後,我選用再次改變了我的代碼爲:
[self.activityIndicator startAnimating];
BOOL waitingOnProcessing = YES;
NSRunLoop *currentRunLoop = [NSRunLoop currentRunLoop];
while (waitingOnProcessing && [currentRunLoop runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]) {
waitingOnProcessing = NO;
}
[self getListFromPath:ftpPath withConnection:ftpConnect];
[self.activityIndicator stopAnimating];
它使activityIndicator
動畫,同時也打響了getListFromPath
功能。但我懷疑這個代碼,我對這個代碼?或者可能是使用NSRunLoop的不好做法? 有人可以告訴我
謝謝
最後,我找到了答案,這個http://www.icodeblog.com/2010/03/04/iphone-coding-turbo-charging-your-apps-with-nsoperation/鏈接幫助我找到解決方案 –