これと同様の方法に対応するセレクタではなく、ブロックを実行できる方法はありますか?performSelectorOnMainThreadのブロックバージョン:withObject:waitUntilDone:
私は、メインスレッドで生成されないイベントを受け取る可能性のあるオブザーバを持っています。主にUI指向の場合は、メインスレッドでアクションを実行します。今、私はこれを行うために2つのメソッドを書く必要があります。一つはイベントオブザーバ、もう一つはメインスレッドで実行する必要があるコードです。
可能であれば、私はこれをすべて1つの方法にカプセル化したいと思います。あなたはwaitUntilDone:NO
に計画していた場合
dispatch_sync(dispatch_get_main_queue(), ^{
// Do stuff here
});
またはdispatch_async
:
[このような質問によると、これらの2つは同等ではないようです(http://stackoverflow.com/questions/9335434/whats-the-difference-between-performselectoronmainthread-and-dispatch-async-on-m)。また、UI固有の答えについては、[こちら](http://stackoverflow.com/questions/19544207/how-to-avoid-coreanimation-warning-deleted-thread-with-uncommitted-catransactio)を参照してください。 – insys