【发布时间】:2023-03-22 20:55:02
【问题描述】:
我有一个返回布尔值(默认为 false)并使用 Alamofire 调用返回字符串的 API 的方法。但是,由于 API 请求是异步的,因此该方法总是在异步请求完成之前完成并返回 false。 我怎样才能等到 API 调用“实际上”完成才能返回正确的结果?
我尝试将 return 语句放在 .success 和 .failure 块中,但这会导致错误
func validateCredentials() -> Bool{
var apiResult = false
Alamofire.request("http://myURL?pUser=\(usernameTextField.text!)&pPwd=\(passwordTextField.text!)&pCheckIt=y")
.responseString {
response in
switch response.result{
case .success:
apiResult = true
case .failure:
apiResult = false
}
}
ProgressHUD.show("Please wait...")
return apiResult . <==== Always return false
}
【问题讨论】: