Xcode7:此应用程序正在从后台线程修改自动布局引擎,这可能导致引擎损坏和奇怪的崩溃

Posted

技术标签:

【中文标题】Xcode7:此应用程序正在从后台线程修改自动布局引擎,这可能导致引擎损坏和奇怪的崩溃【英文标题】:Xcode7: This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes 【发布时间】:2015-09-18 07:12:07 【问题描述】:

我在更新 Xcode7 时收到了这条消息。你能告诉我解决办法吗?谢谢。

此应用程序正在从后台线程修改自动布局引擎,这可能导致引擎损坏和奇怪的崩溃。这将在未来的版本中导致异常。

Stack:(
    0   CoreFoundation                      0x250df883 <redacted> + 150
    1   libobjc.A.dylib                     0x367dedff objc_exception_throw + 38
    2   CoreFoundation                      0x250df7b1 <redacted> + 0
    3   Foundation                          0x25f7be63 <redacted> + 170
    4   Foundation                          0x25e21ba7 <redacted> + 38
    5   UIKit                               0x292f3aa9 <redacted> + 52
    6   UIKit                               0x292f4487 <redacted> + 222
    7   UIKit                               0x299ccfa5 <redacted> + 288
    8   UIKit                               0x294e5fa9 <redacted> + 148
    9   UIKit                               0x291ed6bb <redacted> + 694
    10  QuartzCore                          0x28ab967d <redacted> + 128
    11  QuartzCore                          0x28ab4d79 <redacted> + 352
    12  QuartzCore                          0x28ab4c09 <redacted> + 16
    13  QuartzCore                          0x28ab4129 <redacted> + 368
    14  QuartzCore                          0x28ab3deb <redacted> + 590
    15  WebCore                             0x34a9c79f <redacted> + 282
    16  CoreFoundation                      0x250a2827 <redacted> + 14
    17  CoreFoundation                      0x250a2417 <redacted> + 454
    18  CoreFoundation                      0x250a077f <redacted> + 806
    19  CoreFoundation                      0x24ff31e9 CFRunLoopRunSpecific + 516
    20  CoreFoundation                      0x24ff2fdd CFRunLoopRunInMode + 108
    21  WebCore                             0x34040cdf <redacted> + 422
    22  libsystem_pthread.dylib             0x37077c93 <redacted> + 138
    23  libsystem_pthread.dylib             0x37077c07 _pthread_start + 110
    24  libsystem_pthread.dylib             0x37075a24 thread_start + 8
)

【问题讨论】:

【参考方案1】:

我不知道您的代码是什么,但我知道为什么会这样。您必须在后台线程中完成一些 UI 更改。

除了主线程之外,不要更改 UI,它必然会 使您的应用程序不稳定,并意外崩溃。

使用 GCD(Grand Central Dispatch)。

您可以从任何线程监听和工作,并将 UI 更改封装在 dispatch_async 中:

dispatch_async(dispatch_get_main_queue(), ^
        // Do UI stuff here
);

【讨论】:

以上是关于Xcode7:此应用程序正在从后台线程修改自动布局引擎,这可能导致引擎损坏和奇怪的崩溃的主要内容,如果未能解决你的问题,请参考以下文章

收到“此应用程序正在从后台线程修改自动布局引擎”错误?

此应用程序正在从后台线程修改自动布局引擎 - ios9

iOS 9 键盘:此应用程序正在从后台线程修改自动布局引擎,这可能导致引擎损坏和奇怪的崩溃

iOS9 此应用程序正在从后台线程修改自动布局引擎,这可能导致引擎损坏和奇怪的崩溃

将 xcode 项目 4.2 迁移到 xcode 7.0

从服务器下载:“此应用程序正在修改自动布局引擎......” [重复]