2017-06-01 9 views
2

が起こって自動レイアウト作業に思われるアプリケーションがクラッシュしたとログには、私にこのメッセージを与えた:。ネストされた最適化は決して引き起こされるべきではありません。これが原因NSISVariableデリゲートのコールバック内

「ネストした最適化は、これはおそらくNSISVariableデリゲートのコールバック内で起こって作業を自動レイアウトする予定です、トリガすべきではありませんそれは許可されていません。

これを修正するにはどうすればよいですか?

+0

「このアプリケーションは、メインスレッドからエンジンにアクセスした後、バックグラウンドスレッドから自動レイアウトエンジンを変更しています。エンジンの破損や異常なクラッシュが発生する可能性があります。関連する外見。 – LucasKarlsson

+0

これはまだ問題ですか?その場合は、エラーメッセージ – Mozahler

+0

を生成するコードを入力してください。同じメッセージが表示されなくなりました。私は単にバックグラウンドスレッドでUIを呼び出すと思っていましたが、わかりません。 – LucasKarlsson

答えて

0

私はバックグラウンドスレッドでUIを更新していたと考えます。バックグラウンドスレッドでUIアップデートを検索するには、UI更新ラインの隣に if ([NSThread isMainThread]) { NSLog(@"isMainThread"); } else { NSLog(@"isNotMainThread"); }を配置してみてください。

例:

if ([NSThread isMainThread]) { NSLog(@"isMainThread"); } else { NSLog(@"isNotMainThread"); } 
[email protected]"some text"; 

isNotMainThreadがログに表示されている場合、2つの行を置き換える:本当に

dispatch_async(dispatch_get_main_queue(), ^{ 
    [email protected]"some text"; 
}); 

ない先端のより多くの答えを、。しかし、何も私が推測するよりも良い。

関連する問題