u는 우리가 더 나은 상황을 이해할 수있는 코드의 자세한 내용을 게시 할 경우 내가 도움이 될 것입니다. 어쨌든,이 잘 작동합니다 :
class SomeViewController: UIViewController {
private var customView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
setupCustomView()
}
private func setupCustomView() {
DispatchQueue.global().async {
/*
1. Do some preperation/data init' on background thread.
2. When ready, perform UI dependent initialization on main thread.
*/
DispatchQueue.main.async {
/* Initialize `customView` on the main queue. for example: */
self.customView = UIView()
self.view.addSubview(self.customView)
self.customView.backgroundColor = .red
self.customView.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
}
}
}
}
을 나는 희망이 도움이됩니다.
당신은 당신 자신의 구현을 계속 사용할 수
,
let view: UIView = {
return UIView()
}()
DispatchQueue.main.sync
없이 메인 스레드 언제 다시 갈 수 그러나 :
DispatchQueue.main.async {
self.view.addSubview(view)
}
사용
그런 일을하는 목적은 무엇입니까? 일반적인 목표가 무엇인지 말씀해 주시겠습니까? –
일부 xib에서 PDF를 생성 중입니다. 나는 그들을 위해 용기가 필요하다. 이것은 경고를주는 유일한 행입니다. –
나는 이것이 이상하다고 생각한다! 'DispatchQueue.main.sync'없이 시도하셨습니까? 왜 이것을 필요로합니까? – Mannopson