ちょっと思い立ったアプリを現在作成中。
この中で、久々にスレッドを追加して処理を行うように実装を進めていたところで、問題にぶつかった。
ざっくりと実装を行いシミュレータで動作させた所、下記のようなエラーが発生して処理が止まってしまった。
======================================
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.
======================================
処理の内容としては、作成したスレッドで計算を行い、結果を表示に反映しようとしただった。
まさに、これがまずかった事に気がつかなかった。
表示の内容を変更するのは、メインスレッドにて行う必要がある。
それを守らずに、今回の自分のような事を行ってしまうと、同じような目に遭うようだ。
結果的に、内容を記憶しておき、表示の更新のみメインスレッドで行うようにする事で、特に問題なく動作した。
以前にスレッドを使ったときは、こんな所に引っかかった覚えが無いのだが、おそらく忘れているのかな?
このように、何か残したり、ちょっと書いたりする事で、記憶の片隅に残す個tが出来ればいいと思う。
[0回]
PR