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