在MacOS X High Sierra 10.13.4和10.13.5上,我开始遇到以下断言并中止:
断言失败:(NSViewIsCurrentlyBuildingLayerTreeForDisplay()!= currentBuildingLayerTree),函数NSViewSetCurrentlyBuildingLayerTreeForDisplay,文件/BuildRoot/Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1561.40.112/AppKit.subproj/NSView.m, 14485行
断言似乎总是随机出现在以下三行代码之一上:
dispatch_async(dispatch_get_main_queue(), ^{
[self.courseWindowController showWindow:self];
[[self.courseWindowController window] makeKeyAndOrderFront:self];
[[self.courseWindowController window] setParentWindow:mainWindow];
});
其他人是否遇到过这种情况,您如何解决?
答案 0 :(得分:0)
@robmayoff是正确的。我正在从主线程中停止忙碌的微调。您可以设置环境变量CA_ASSERT_MAIN_THREAD_TRANSACTIONS = 1,它将显示给您。
您可以在Xcode->产品菜单->方案子菜单->编辑方案...中设置环境变量。选择“运行”,然后在环境变量部分中,可以设置CA_ASSERT_MAIN_THREAD_TRANSACTIONS。然后在调试器中运行该应用程序,您将发现问题。