初始化主线程
问题描述:
一个变种。如果我初始化这样的一个UIWindow:初始化主线程
open lazy var whistleWindow: UIWindow = UIWindow()
我得到一个运行时的问题:
被称为的UIWindow()必须从主胎面仅
因此,我试图做这样的事情:
open lazy var whistleWindow: UIWindow = {
var window:UIWindow!
DispatchQueue.main.sync {
window = UIWindow()
}
return window
}()
可悲的是我在运行时获取此错误:
主题1:EXC_BREAKPOINT(代码= 1,子码= 0x10497bba4)
我能做什么呢?
答
open lazy var whistleWindow: UIWindow = {
DispatchQueue.main.sync {
return UIWindow()
}
}()
'open lazy var whistleWindow:UIWindow = UIWindow()'编译并运行时没有问题。寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题或错误以及在问题本身中重现问题所需的最短代码。没有明确问题陈述的问题对其他读者无益。请参阅:http://stackoverflow.com/help/mcve –
这个变量在哪个类上?你如何创建该类的实例?为什么你要创建一个'UIWindow'? – Paulw11
@ Paulw11我认为你有一点。我必须确定当我实例化课程时,我必须在主线程中完成。我不是为什么他们创建了一个UIWindow,它不是我的代码...它来自https://github.com/hyperoslo/Whisper。 –