私は共通クラスを使用してWebサービスの応答を取得しています。今度は、最初のView ControllerでWebサービスからの戻り値を割り当てたいと思います。しかし、問題は、迅速な共通クラスでWebサービスの応答を完了する前にView Controller内のコードを割り当てることです。したがって、配列は空の配列として返されます。誰かが迅速にサービスコールを完了するまで待つようにしてください。別のサービスを完了するまで関数の実行を待機する
ここは私のサンプルコードです。 Common.swiftクラス
static func getData() -> [returnArray] {
DispatchQueue.main.async(execute: {
// Request to get service data
// Servce response
let task = restObject.callObject.dataTask(with: requestObject, completionHandler: {data, response, error -> Void in
let object = getData(data)
if let values = object {
if values.count > 0 {
// Assign the values to global static array
}
}
})
task.resume()
})
// return the global static array
}
ビューコントローラクラス: インサイドdidLoad機能私は機能上の一般的なクラスを呼び出し、返された配列の値にアクセスしています。しかし、空の配列を返します。
から取得することができますブロックに関する
詳細については、いくつかの「コールバック」の一種または「完了ハンドラ」を介して、あなたのクラスを登録する必要があります。 – luk2302
PromiseKitをご覧ください:https://github.com/mxcl/PromiseKit –
関連コードを表示してください。 – shallowThought