【发布时间】:2023-04-04 17:37:01
【问题描述】:
我想调用一个简单的 api 并返回从服务器返回的 JSON 结构。我正在使用 alamofire 来实现这一点。
这是我的功能
func loginUser(user_name: String, password: String, callBack:(Login) -> Void){
let parameters: Parameters = ["user_name": user_name,"password": password];
let urlString=serverURL+"login.php";
Alamofire.request(urlString, method: .post, parameters: parameters, encoding: URLEncoding.httpBody)
.responseJSON { response in
if let status = response.response?.statusCode {
switch(status) {
case 200:
guard response.result.isSuccess else {
//error handling
return
}
if let login: Login = response.result.value {
callBack(login)
} else {
callBack(Login(user_id: 0, status:0))
}
default:
print("HTTP Error : \(status)")
callBack(Login(user_id: 0, status:0))
}
}
}
}
struct Login {
let user_id: Int
let status: Int
}
此行正在生成“无法转换类型”错误。
if let login: Login = response.result.value {
我做错了什么?
【问题讨论】:
-
response.result.value要么是[String : Any]要么是Array,你不能只将它转换为Login类型并期望它工作 -
@mag_zbc 我已经添加了登录结构,我该如何让它工作?