swift labo

[swift 3] reason: ‘Only run on the main thread!’ error 解消

Introduction

村本訓一

村本訓一

株式会社lord代表。WEBデザイナー⇒ディレクター⇒プロデューサーです。2010年から起業しています。社会に出てからずっとWEB屋です。 新しいネットサービス、デバイス、コミック、本、映画好きです。最近は急にプログラマーっぽい事もやってます。


LATEST POSTS

Reject [Guideline 2.3.3 – Performance – Accurate Metadata] iPhone 5.8” screenshot(s) 06th December, 2017

UIImageJPEGRepresentationのcompressionQualityでサーバ、ネットワーク負荷減少 25th July, 2017

API

[swift 3] reason: ‘Only run on the main thread!’ error 解消

Posted on

[環境]
Xcode:8.2.1
Swift:3.0.2
iOS:10.2

今日出たエラーの解消方法です。
かなり苦労してしまいました。

出たエラー:

状況
JSQMessageを利用していて、一覧から詳細にセグエで遷移するさいに上記エラー。
具体的には画面遷移はせず、メモリ消費などがぐんぐん上がってやがてクラッシュという形。

ハマった点
A画面→B画面の構造で、B画面でエラーが出たりしていたため、B画面側だと思ってしまいました。。。
そして1.5時間ほど経ち・・・冷静にB画面のviewDidLoadでのprintは出ているか?と確認初めたところ、
そもそも出ていない。。。これは・・・A画面か?と気づく。。。

解消方法

のようにしていたので、これをDispatchQueue.main.asyncで囲う。

これで解消されました。
特にdo try catchでAPIに投げて、変数に格納して、別画面に行く時なんかはよく起きるので同じエラーが出たらお試しください!

村本訓一

村本訓一

http://kunikazumuramoto.com

株式会社lord代表。WEBデザイナー⇒ディレクター⇒プロデューサーです。2010年から起業しています。社会に出てからずっとWEB屋です。 新しいネットサービス、デバイス、コミック、本、映画好きです。最近は急にプログラマーっぽい事もやってます。

There are no comments.
View Comments (0) ...
Navigation