Я почти закончил перенос приложения моей iOS в Swift 3.0. Но у меня все еще есть несколько случаев, подобных приведенным ниже. Большинство из них я смог решить, поставив проблематичный код в основной поток.приложение, изменяющее механизм автозапуска из фоновой темы
В некоторых других случаях я не могу понять, какая часть моего кода выполняется в неправильном потоке. И я получаю сообщение, как это:
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.
Stack:(
0 CoreFoundation 0x000000018765a1d8 <redacted> + 148
1 libobjc.A.dylib 0x000000018609455c objc_exception_throw + 56
2 CoreFoundation 0x000000018765a108 <redacted> + 0
3 Foundation 0x0000000188241ea4 <redacted> + 192
....................
16 libsystem_pthread.dylib 0x00000001866eece4 <redacted> + 200
17 libsystem_pthread.dylib 0x00000001866ee378 pthread_mutex_lock + 0
18 libsystem_pthread.dylib 0x00000001866edda4 start_wqthread + 4
)
Есть ли какая-то особая техника (опция при использовании отладчика или ??) я могу использовать, чтобы проследить путь, за которой следует progran, чтобы увидеть, где это происходит?
Посмотрите на это: http://stackoverflow.com/a/39712843/1208191 –