0
我該如何使用URLSession獲取JSON對象,以便我能夠將它從ObjectMapper轉換爲Map對象?這是我從API服務器獲取數據代碼:Swift 3 ObjectMapper - 將URLSession結果轉換爲Map對象失敗
func makeGetRequest(completionHandler: @escaping ((AnyObject?) -> Void)) {
let session = URLSession(configuration: .default)
guard let requestUrl = URL(string:buildUrl()) else { return }
var request = URLRequest(url:requestUrl)
//HEADERS
request.addValue("multipart/form-data; charset=utf-8", forHTTPHeaderField: "Content-Type");
let token = CredentialsManager.sharedInstance().token;
if (!(token?.isEmpty)!) {
request.addValue(token!, forHTTPHeaderField: "X-Auth-Token");
};
let task : URLSessionDataTask = session.dataTask(with: request, completionHandler: {(data, response, error) in
guard let data = data, error == nil else { return }
do {
let resultJSON = try JSONSerialization.jsonObject(with: data) as! [[String:AnyObject]]
completionHandler(resultJSON as AnyObject?)
} catch let error as NSError {
// Handle error
}
});
task.resume()
}
這是函數,我呼籲數據是牽強:
public func getUser() {
makeGetRequest() { (result) -> Void in
let resultModel = UserModel(map: result as! Map)
self.resultDelegate.onUserRequestSuccess(model: resultModel!)
}
}
,這裏是我的usermodel實現可映射協議:
class UserModel : Mappable {
var id: Int?
var username: String?
required init?(map: Map) {
}
// Mappable
func mapping(map: Map) {
id <- map["id"]
username <- map["username"]
}
}
而且同時呼籲
UserModel(map: result as! Map)
我得到的錯誤:
Could not cast value of type '__NSDictionaryI' to 'NSArray'