iOS9'从后台线程修改自动布局引擎'不使用自动布局

时间:2016-01-21 14:17:32

标签: ios multithreading 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没有解释如何调试这样的事情。

1 个答案:

答案 0 :(得分:0)

您是否直接使用Autolayout并不是问题所在。操作系统正在将遗留的autoresizingMask转换为现代NSLayoutConstraint

这个问题与从主要方面的任何地方修改UI有关。 这通常发生在:

  • 回复NSNotification
  • 从异步方法返回
  • 在您无法控制的线程上执行完成块
  • 在后台明确安排任务

请注意该应用不会崩溃......
应用崩溃。您只需要时间和几千名用户......