【iOS】ErrorMessage レイアウトスレッド管理に注意!!


ErrorMessage
This application is modifying the autolayout engine from a background thread after the engine was accessed from the main thread. This can lead to engine corruption and weird crashes.

英訳をすると、
このアプリケーションは、メインスレッドからエンジンにアクセスした後、自動レイアウトエンジンをバックグラウンドスレッドから変更しています。これにより、エンジンの破損や奇妙なクラッシュが発生する可能性があります。

iOS13くらいから
レイアウト描画関係のスレッドを気にする必要があるようです。

iOS13にあげてからやたらと落ちる原因が増えたという方がいたらこの点確認してみてください。

例を挙げている記事がありました

tableVeiw.reloadData()をバックグラウンドスレッドで実行してはいけない

[viewDidLoadでAdMobの設置とAlamofireによる通信を行っている時に発生。]
(https://llcc.hatenablog.com/entry/2016/05/25/230000)

  /// UIView 系のレイアウト処理
  // 例:tableVeiw.reloadData()
  // 例:cell.text = "テキスト"
dispatch_async(dispatch_get_main_queue(), {
 // レイアウト系の処理を行う場合
})

// 念のため メインスレッドにいるかの確認をしておくといいかもですね。


let currentThread = NSThread.currentThread()
print(currentThread.isMainThread)  // false

dispatch_async(dispatch_get_main_queue()) {
  let currentThread = NSThread.currentThread()
  print(currentThread.isMainThread)  // true
  // レイアウト系の処理を行う場合
}

関連記事


【About】(http://qiita.com/sunstripe) - サンストライプ


制作チーム:サンストライプ


http://sunstripe.main.jp/

(月1 WEBコンテンツをリリースして便利な世の中を作っていくぞ!!ボランティアプログラマー/デザイナー/イラストレーター/その他クリエイター声優募集中!!)

緩募

地域情報 THEメディア

THE メディア 地域活性化をテーマに様々なリリース情報も含め、記事をお届けしてます!!
https://the.themedia.jp/

ゼロからはじめる演劇ワークショップ

多様化の時代に向けて他者理解を鍛える

プログラミングワークショップ・ウェブ塾の開講!!!

様々なテーマでプログラミングに囚われずに取り組んでいきます。
詳しくはこちら ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
プログラミングサロン 月1だけのプログラミング学習塾

協力応援 / 支援者の集い

チーム:サンストライプ

プログラミングラボ

一緒にポートフォリオを作りませんか?現場の体験やそれぞれの立場から年齢関係なく作品を作りたい方々と一緒にチームを作って、作品を作っています。現場に行きたい人には、職場紹介や職場の体験や悩み相談なども受けております。
様々な職種からプログラミングの知識を得たい、デザインの知識を得たい、データーベースの知識を得たいという人が集まっております。
週1のミーティングにそれぞれの近況と作業報告して、たまにリモート飲み会などをしております!!

興味がある方は、DMに話しかけてみてください。

トラストヒューマン

http://trusthuman.co.jp/
私たちは何よりも信頼、人と考えてます。

「コンサルティング」と「クリエイティブ」の両角度から「人材戦略パートナー」としてトータル的にサポートします!!

キャリア教育事業

青空プログラミング

広域学習支援プラットフォーム『のびのび日和』

#スポンサー募集

ネリム

https://nerim.co.jp/
配信事業などを映像コンテンツなどの制作しております

ビヨンドXプロジェクト

ビヨンドXプロジェクト全体会議