【发布时间】:2020-05-16 17:13:25
【问题描述】:
我尝试使用 alamofire 进行 API 调用。当我像这样print(response.value ?? "") 打印response.value 时,我在Xcode 控制台中得到了正确的文本,但是在这行comletionHanlder(response.value as! [Order]) 中出现错误。
错误信息是Could not cast value of type '__NSDictionaryI' (0x7f81db0f3070) to 'AppName.Order' (0x10db3fb80)
static func getOrders( comletionHanlder: @escaping ([Order]) -> Void){
let headers : HTTPHeaders = ["Authorization" : "Bearer \(User.current!.accessToken)",
"Lang" : "KA"]
let urlStr = Constants.Api.baseUrl + Constants.Api.Routes.api + Constants.Api.Routes.doctorBooking + Constants.Api.Routes.getBookings
AF.request(urlStr,
method: .post,
encoding: JSONEncoding.default,
headers: headers).responseJSON{ response in
if response.response?.statusCode == 400 {
comletionHanlder([])
} else {
if response.response?.statusCode == 200 {
print(response.value ?? "")
comletionHanlder(response.value as! [Order])
}
}
}
;
struct Order: Codable {
let title: String
let details: String
let BookingId: Int
}
当我打印 response.value 时,我收到了这条消息
(
{
title = "title"
details = "details"
BookingId = 10002
},
{
title = "title1"
details = "details1"
BookingId = 10003
}
)
【问题讨论】:
标签: ios swift networking alamofire