2011-08-24 53 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