わかりました。メイン スレッド以外のスレッドからビュー要素を直接操作することは想定されていません。
しかし、ビューで使用されるバックグラウンド スレッドで何かを行うことはできますか?
特に、文字列を吐き出すかなり充実したアルゴリズムがあります。その文字列を UITextView のテキストにしたい場合、このアルゴリズム全体をメイン スレッドで実行する必要がありますか? それとも、バックグラウンドで実行できますか?
わかりました。メイン スレッド以外のスレッドからビュー要素を直接操作することは想定されていません。
しかし、ビューで使用されるバックグラウンド スレッドで何かを行うことはできますか?
特に、文字列を吐き出すかなり充実したアルゴリズムがあります。その文字列を UITextView のテキストにしたい場合、このアルゴリズム全体をメイン スレッドで実行する必要がありますか? それとも、バックグラウンドで実行できますか?
グラフィックアプリケーションがバックグラウンドで画像をレンダリングするのと同じように、バックグラウンドで実行できます。文字列の準備ができたら、GCDはあなたの友達です:
- (void)backgroundStringGenerator
{
NSString *expensiveString = ... // do string generation algorithm
dispatch_async(dispatch_get_main_queue(), ^{
theLabel.text = expensiveString;
});
}