2011-08-24 55 views
0

請看下面的代碼,outputConsole是UITextView。如何從performSelectorInBackground線程更新UITextView?

- (IBAction)buttonBuildDown 
{ 
    [self performSelectorInBackground:@selector(processBuildDown) withObject:nil]; 
} 

- (void)processBuildDown 
    ... 
    [outputConsole setText:outputText]; 
    ... 
    [outputConsole setText:outputText]; 
} 

代碼[outputConsole的setText:的outputText]提出了:

嘗試以獲得比從主線程 或web線程以外的線程的網絡鎖定。這可能是從 輔助線程調用UIKit的結果。現在崩潰...

如何解決這個問題?我需要通過UITextView通知用戶有關進程狀態的長操作(大約5秒)。

非常感謝您的幫助!

回答

3

UIKit的不是線程安全的,你應該只更新在主線程,使用NSObjects,performSelectorOnMainThread方法來執行,將在主線程上運行,並設置UITextViews文本代碼UI元素...

丹尼爾

+0

謝謝Daniel!你救我的靈魂! – Dmitry