iPhoneアプリ開発 -バックグラウンド処理をした際にはまったこと-
おきたこと
以下のメソッドを用いて、処理に時間がかかるもの(ここだとhoge)をバックグラウンドで実行しておいて、処理が終わるまではローディングを表示させる。
(void)performSelectorInBackground:@selector(hoge:) withObject:hogearg
しかし、以下のようなエラーが発生。
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…
エラーから色々と調べた結果、どうもUIKitはスレッドセーフじゃないので起きた模様。
※参考サイトにもありましたが、TextViewを利用したら起きました。
対処法
指定したメソッドをメインスレッド上で実行してくれる以下のメソッドがあるので、利用します。
(void)performSelectorOnMainThread:(SEL)hogehoge withObject:(id)hogehogearg waitUntilDone:(BOOL)wait
今回は、hogeメソッドすべてではなくて一部の箇所のみが問題なので、その箇所(上記の書き方だとhogehoge)だけ上記のメソッドを利用しました。
参考
広告
関連記事
-
Androidアプリ開発 -リストをタッチして別ページ表示-
* 前提 -「設定画面」で各種項目を設定。 --Activity:ConfigActivity --
-
iPhoneアプリ開発 -同じ画像を2度以上画像処理した際に起こるエラーの対処-
* 起きた現象 (1) UIImageのデータを元にピクセルの値を色々といじって画像処理。 (2)
-
Androidアプリ開発 -9patchで吹き出し画像を作る-
* やりたいこと TextViewで文字を表示させ、背景画像に吹き出し画像を設定した場合。 文字
-
TestLink1.91のバグの修正方法
どうやらTestLink1.91にはバグがあるようなので、修正方法を以下に記述。 Test
-
iPhoneアプリを開発してての疑問 -教えてエライ人!-
MacでiPhoneアプリを開発してて疑問に思ったのの解決してないことを列挙。 知識不足をさらけ出し
-
DeployGateを試してみた(iOS編) -DeployGateがiOSに対応-
今までのDeployGate - -[http://pplace.jp/2013/03/1398
-
WordPressプラグイン「WP Hatena Notation」にPullRequestを投げた話
WordPressではてな記法が利用できる「WP Hatena Notation」を重宝しています。
-
TwitterAPI 1.1対応で困ったこと −フォロー・フォロワー一覧取得−
TwitterのAPI1.1に2013年の3月15日までには対応しないといけません。
-
Jenkins+Capistranoを設定した時にしたこと -「ポート変更」「公開鍵認証」対応-
* 前段階 上記にあるように、Jenkins+Capistranoの設定をしています。 ただし、設
-
さくらのVPSでJenkins -執事さんとご対面-
さくらのVPSを利用している方は多いかと思います。 私も、自分で遊ぶ用(開発用)として借りてみまし