[iOS] [Objective-C] UIをワーカースレッドから操作する

はい。突然ですがエラーが出ました。

Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now…

うんうんなるほど。。日本語でおk。

結論から言うとUIKitはスレッドセーフではないからです。
ゆえに、メインスレッド以外からUIを操作しようとするとこんなエラーが吐かれるんですね。

ではどうするか。
そんな迷える子羊iOSエンジニアのために
‘performSelectorOnMainThread’というメソッドが用意されています。
これはJava(Android)でいうところのhandlerのようなものですね。

実行例としてはこんな感じです。

[self performSelectorOnMainThread:@selector(実行したいメソッド) withObject:nil waitUntilDone:TRUE];