場合によっては UI を変更するメソッドがあります。
例えば:
-(void) myMethod {
if(someExpressionIsTrue) {
// make some UI changes
// ...
// show actionSheet for example
}
}
時々から時々 からmyMethod
呼び出されます。mainThread
other thread
だからこそ、これらのUIの変更は確実にmainThread
.
この方法で必要な部分を変更しましmyMethod
た:
if(someExpressionIsTrue) {
dispatch_async(dispatch_get_main_queue(), ^{
// make some UI changes
// ...
// show actionSheet for example
});
}
だから質問:
-
dispatch_async(dispatch_get_main_queue()
メインスレッドで呼び出すのは安全で良い解決策ですか? パフォーマンスに影響しますか? - この問題は他のより良い方法で解決できますか? メソッドを使用してメインスレッドであるかどうかを確認し、他のスレッドの場合にのみ
[NSThread isMainThread]
呼び出すことができることはわかっていますが、これらの UI の更新でメソッドまたはブロックをもう 1 つ作成する必要があります。dispatch_async