スポンサーリンク
UIAlertController を使ってメッセージを表示してるんですけど、表示が出るまでにすごく時間がかかるんです
すごくってどれぐらい?
4秒ぐらいです
遅っ・・・
TableView の Cell をタップしたら UIAlertController で確認画面を出す処理を書いたのですが、タップしてから確認画面が表示されるまでに異常に時間がかかりました。
タップしてから4秒ぐらいして表示が行われるため致命的なレベルです
スポンサーリンク
原因は?
調べてみたところ、addAction をメインスレッドで行なっていないために遅くなっているようでした。
現象への対処
メインスレッドで addAction を行なっていないのが原因なので、メインスレッドで addAction が実行されるように修正すれば大丈夫です。
具体的な方法としては、UIAlertController の初期化から表示までの一連の処理を一つのメソッドに入れます。
そして
1 |
[self performSelectorOnMainThread:@selector(showDialog) withObject:nil waitUntilDone:NO]; |
みたいにメインスレッドでメソッドが実行されるように記述します。
この書き方に修正して実行してみたら、タップ後に一瞬で表示されるよう
スポンサーリンク
スポンサーリンク