好的,所以我知道你不应该直接与主线程以外的任何线程中的视图元素进行交互。
但是你可以在一个视图使用的后台线程中做什么吗?
特别是,我有一个相当实质的算法,最终吐出一个字符串。如果我希望该字符串成为UITextView的文本,我是否需要在主线程上运行整个算法?或者它可以在后台完成吗?
答案 0 :(得分:1)
您当然可以在后台运行它,就像图形应用程序可能在后台渲染图像一样。准备好字符串后,GCD就是你的朋友:
- (void)backgroundStringGenerator
{
NSString *expensiveString = ... // do string generation algorithm
dispatch_async(dispatch_get_main_queue(), ^{
theLabel.text = expensiveString;
});
}