私はSwiftには新しく、完成したプロジェクトを検討しようとしています。しかし、私が理解できなかったことがあります。Swiftでアラートを表示するときにDispatchQueueが必要なのはなぜですか?
ネットワークリクエストが完了すると、アプリは条件の下でアラートを表示します。
func makeNetworkRequest() {
//newtork result...
DispatchQueue.main.async {
self.showAlert(versionMessage: "Error")
}
}
func showAlert(versionMessage: String) {
let alert = UIAlertView(title: "", message: versionMessage, delegate: self)
alert.show()
}
ただし、DispatchQueue
で行われます。このような状況で、なぜ誰もDispatchQueue
を使用する必要があります。
UIのコードは常にメインキューで実行する必要があります。 – rmaddy
とネットワークは(通常)メインスレッドの外側に作られています。ディスパッチでは、内部のコードはメインスレッド – GIJOW
https://www.quora.com/Why-must-the-UI-always-be-updated-on-Main-Thread – JAL