一尘不染

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

swift

使用swift在我的OS X中经常遇到此错误:

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

我有一个 NSWindow ,正在交换视图到contentView窗口的视图。尝试在窗口上执行操作或在窗口上添加操作时,都会收到
错误消息 。试图禁用自动调整大小的东西,并且我没有使用自动布局的东西。有什么想法吗?NSApp.beginSheet``subview

有时候很好,什么也没发生,其他时候却完全破坏了我UI,没有负载


阅读 187

收藏
2020-07-07

共1个答案

一尘不染

需要将其放置在其他线程中,该线程允许UI在执行完线程功能后立即进行更新:

现代雨燕:

DispatchQueue.main.async {
    // Update UI
}

较早版本的Swift,低于Swift 3。

dispatch_async(dispatch_get_main_queue(){
    // code here
})

目标C:

dispatch_async(dispatch_get_main_queue(), ^{
    // code here
});
2020-07-07