【发布时间】:2017-10-30 14:11:20
【问题描述】:
在一个全局的异步闭包中,我想在主线程上初始化一个UIView。我认为这段代码可能会这样做,但我收到了分析器警告:
UIView.init(frame:)只能在主线程中使用。
let view: UIView = { // Line with the warning
DispatchQueue.main.sync {
return UIView()
}
}()
【问题讨论】:
-
这样做的目的是什么?你能说说你的总体目标是什么吗?
-
我正在从一些 xib 生成 PDF。我需要一个容器给他们。这是唯一给出警告的行。
-
我觉得这很奇怪!你试过没有
DispatchQueue.main.sync吗?为什么需要这个? -
@JoshParadroid 你是对的!诚实地。这不是我。祝你好运!
-
@Mannopson 抱歉——我不是故意要指责的!
标签: swift multithreading grand-central-dispatch dispatch-async background-thread