私たちはより良いコンテキストを理解できるように、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)
}
使用
そのようなことをする目的は何ですか?あなたの一般的な目標は何ですか? –
私はいくつかのxibsからPDFを生成しています。私はそれらのためのコンテナが必要です。これは、警告を出す唯一の行です。 –
私はこれが奇妙だと思います!あなたは 'DispatchQueue.main.sync'なしで試していますか?なぜこれが必要ですか? – Mannopson