多くのサードパーティ製のライブラリを使用し、ログに次のエラーが表示される大規模なアプリケーションがあります。「このアプリケーションは、メインスレッドからエンジンにアクセスした後、バックグラウンドスレッドから自動レイアウトエンジンを変更しています。エンジンの破損や奇妙なクラッシュにつながる可能性があります。原因を見つける:「このアプリケーションは、メインスレッドからエンジンにアクセスした後、バックグラウンドスレッドから自動レイアウトエンジンを変更しています。
ここで私が見つけたことは、おそらく、自動レイアウトをトリガーしているバックグラウンドスレッドでUI要素が変更されたためです。残念ながら、非常に多くのUI要素が非常に多くの異なる可動部分によって変更されているため、原因を見つけるための最良の方法がわかりません。
バックグラウンドスレッドからautolayoutの変更を正確にトリガしていることをどのようにして知ることができますか?
完了ブロックを確認してください。完了ブロックのUIコードが 'DispatchQueue.main.async {}'にラップされていることを確認してください。 – rmaddy
これは大規模なアプリケーションです。非常に多くの完了ブロックがあります。だから、非常に多く。私はツールベースのアプローチがどこかにあることを願っています。なぜならそうでなければ、それは永遠にかかるからです。 –
https://stackoverflow.com/questions/32680303/ios9-this-application-is-modifying-the-autolayout-engine-from-a-background-thrを参照し、最後のコメント(Swiftリンク)を確認してください受け入れられた答え。 – rmaddy