私は非同期および同期メカニズムを初めて使用しています。 私のコードでは、もう一方のコード行が実行された後で1つのコード行を実行する必要があります。Swiftで他のコードが実行された後に1つのコードを実行する方法
func something(){
let workerQueue = DispatchQueue.global(qos: .userInitiated)
workerQueue.async{
let info = getInfoFromTheWeb()//I need the info value in order to perform the next line
saveToDB(info: info)
DispatchQueue.main.async {
//update a label text in the ui after getting and saving that info
}
}
}
あなたの専門的な考えてください。..
を実行されるときだけGCDの概念を通過するにはそれがどのように機能するのか(https://www.raywenderlich.com/148513/grand-central-di) spatch-tutorial-swift-3-part-1)を参照してください。あなたは確かに自分自身で答えを見つけるでしょう: –
行が順番に実行される、問題は何ですか? 'getInfoFromTheWeb'は非同期ですか?あなたはすでに同期要求を実行できる別のスレッドにいます。つまり、 'saveToDB'に達すると、Web情報はすでに存在しています。 – luk2302
あなたのコンセプト/問題は完了ハンドラの使用に関連していると思います[ここ](https://grokswift.com/completion-handlers-in-swift/)はそれのための素晴らしいチュートリアルです! –