2016-01-21 4 views
1

я начал получать это предупреждение:iOS9 'модификация autolayout двигателя от фонового потока без использования autolayout

Это приложение, изменяющее autolayout двигатель от фона нити, что может привести к повреждению двигателя и странно сбои. Этот вызовет исключение в будущей версии.

Вот трассировка с предупреждающим сообщением:

Stack:(
0 CoreFoundation      0x25542303 <redacted> + 150 
1 libobjc.A.dylib      0x24d0edff objc_exception_throw + 38 
2 CoreFoundation      0x25542231 <redacted> + 0 
3 Foundation       0x25e25bbb <redacted> + 170 
4 Foundation       0x25ccb637 <redacted> + 38 
5 UIKit        0x297e0431 <redacted> + 52 
6 UIKit        0x297e0e1f <redacted> + 222 
7 UIKit        0x297fd52d <redacted> + 96 
8 UIKit        0x29efe579 <redacted> + 320 
9 UIKit        0x299dc8e9 <redacted> + 148 
10 UIKit        0x299cb44f <redacted> + 42 
11 UIKit        0x296d5a83 <redacted> + 714 
12 QuartzCore       0x277b1ad5 <redacted> + 128 
13 QuartzCore       0x277ad1d1 <redacted> + 352 
14 QuartzCore       0x277ad061 <redacted> + 16 
15 QuartzCore       0x277ac581 <redacted> + 368 
16 QuartzCore       0x277ac233 <redacted> + 614 
17 QuartzCore       0x277d9b63 <redacted> + 310 
18 libsystem_pthread.dylib    0x25279905 <redacted> + 508 
19 libsystem_pthread.dylib    0x25279507 <redacted> + 86 
20 libsystem_pthread.dylib    0x2527a485 pthread_exit + 28 
21 Foundation       0x25ca31d7 <redacted> + 10 
22 Foundation       0x25d5e34f <redacted> + 1178 
23 libsystem_pthread.dylib    0x2527ac7f <redacted> + 138 
24 libsystem_pthread.dylib    0x2527abf3 _pthread_start + 110 
25 libsystem_pthread.dylib    0x25278a08 thread_start + 8 

Насколько я знаю, я не использую Autolayout (как я хочу, чтобы приложение, чтобы быть IOS 5.1.1 совместим). и также я, кажется, не в пределах сообщаемой обратной линии.

У меня также включен класс PSPDFUIKitMainThreadGuard, который должен проверять доступ к основным потокам, но ничего из этого не происходит.

Есть ли способ узнать, что делает такое?

Вопрос This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes не объясняет, как отлаживать такую ​​вещь.

+0

Любое обновление любого компонента пользовательского интерфейса из другой, чем основная очередь, сгенерирует это сообщение - так что посмотрите, где вы обновляете пользовательский интерфейс от обработчиков завершения и т. Д. – Paulw11

+1

Добавить контрольная точка исключения. Покажите нам код, вызывающий крушение, а не ошибку. : D – Fogmeister

+0

Приложение не разбивается, оно просто выводит это предупреждение в журнал отладки, и я действительно не знаю, какая часть кода делает это ... Отладка работала отлично с классом PSPDFUIKitMainThreadGuard, но ничего не делает в связи с этим вопросом – LetynSOFT

ответ

0

Независимо от того, используете ли вы Autolayout, это не проблема. ОС превращает наследие autoresizingMask в современный NSLayoutConstraint под капотом.

Проблема связана с изменением пользовательского интерфейса из любого места, кроме основного протектора. Это обычно происходит, когда:

  • отвечая на NSNotification
  • возвращения из метода асинхронной
  • выполняющей блок завершения на волоске вы не контролируете
  • явно планирования задания в фоновом режиме

Заметка о Приложение не использует " t crash ...
Приложение будет аварии. Все, что вам нужно, это время и несколько тысяч пользователей ...

Смежные вопросы