0
我知道如何通過完成進行同步請求。但我不知道如何在一個循環中進行同步請求。帶回路的Alamofire同步請求
這裏是我的代碼:
var marks = [JSON]()
let vnCount = studentVnCodes.count
var i: Int = 0
marks = [JSON](repeating: JSON.null, count: vnCount)
for vn in studentVnCodes {
let url = "https://example.com/Student/Grade/GetFinalGrades?&vn=\(vn)&academic_year=All"
Alamofire.request(url).responseString { response in
var dataString: String = (response.result.value)!
dataString = cleanMarksJSON(string: dataString)
if let dict = convertToDictionary(text: dataString) {
marks[i] = (JSON(dict as Any))
i += 1
if (vnCount == marks.count) {
completionHandler(marks)
}
}
}
}
在這裏,我試圖讓與VN碼(vnCount
)的數x請求。 問題是我在我的JSON數組中排列錯誤的所有JSON marks
。當然是因爲它在完成時將響應追加到數組中,並且不會等待先前的請求結束。
所以我試着創建一個變量i
來強制函數以正確的順序附加響應。這不起作用。任何想法?謝謝!
謝謝!然而你是對的:這不是最佳的。所以我找到了你給我字典的另一種方式。我們有同樣的想法! ;) –