メインスレッド以外のスレッドからUIViewにアクセスしてはいけない

基本的なルールすぎて忘れがちだがメインスレッド以外のスレッドからUIViewにアクセスしてはいけない。

というわけですっかり忘れていて数時間無駄にしてしまった。
場所はUITextViewに対して文字列を設定する箇所。
Application Outputには以下の様に出力されていた。

.
.
.
Thread started: 
bool _WebTryThreadLock(bool), 0xe415c80: 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...
1   WebThreadLock
2   -[UITextView setText:]
3   0x12fc2838
4   0xfcf016c
5   0x158475a1
6   0x15847414
7   0x15846842
.
.
.

メッセージを読めばすぐに気づく。でもハマった。
言い訳になるがこの例外は必ず起きるわけではなく、代入する文字列によって例外が発生しないのだ。その結果、代入している文字列に問題が!?と、思考がそっちに傾いてしまっていた。