以前のAlamofireリクエストの結果をパラメータとして使用して、Alamofireリクエストを実行したいとします。それを簡単にするには:別のAlamofireリクエストの完了後にAlamofireリクエストを実行してください。
//Code1
Alamofire.request("URL", method: HTTPMethod.post, parameters: ["id": id as NSString)], encoding: URLEncoding.httpBody).response(completionHandler: { (response) in
let json = response.data
do {
print("This should be First")
let data = try JSON(data: json!)
let alllastmessages = data["Messages"].arrayValue
for i in 0..<alllastmessages.count {
self.List.append(alllastmessages[i]["message"].stringValue)
}}
catch _{}
})
//End Code1
//Code2
print("This should be Last")
for i in 0..<List.count {
Alamofire.request("URL2", method: .post , parameters: ["id": id as NSString] , encoding: URLEncoding.httpBody).response(completionHandler: { (response) in
//Do Something
})
self.tableView.reloadData()
}
//End Code2
(このコードが簡略化されて、私はちょうどCODE1がCODE2前に実行させるための方法を探しています)IMOがDispatchGroup
を使用することです
はお返事をあなたに感謝しますが(それが最後の実行されるため)、それはAlamofireをスキップ>グループに入っているため、このソリューションは動作しませんでした>実行しますgroup.wait()は永遠に待っています。 – Gintal
使用したコードを正確に表示できますか?私は実際に私の自己を実行し、私はうまく動作することを見たコードで私の例を更新しました。 – netigger
今、うまく働いています、どうもありがとうございます。 "DispatchQueue.global(qos:.userInitiated).async"が見つかりませんでした。 – Gintal