2012-07-14 24 views
0

好的,所以我知道你不应该直接与除主线程之外的任何线程交互视图元素。在后台线程上准备视图元素

但你能做一个后台线程,将被视图使用的东西?

特别是,我有一个相当可观的算法,最终吐出一个字符串。如果我想让该字符串成为UITextView的文本,我是否需要在主线程上运行这整个算法?或者可以在后台完成?

回答

1

你当然可以在后台运行它,就像图形应用程序可能在后台渲染图像一样。一旦准备好字符串,GCD就是你的朋友:

- (void)backgroundStringGenerator 
{ 
    NSString *expensiveString = ... // do string generation algorithm 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     theLabel.text = expensiveString; 
    }); 
}