0
URLSessionを使用してJSONオブジェクトをフェッチし、ObjectMapperからMapオブジェクトにキャストできるようにするにはどうすればよいですか?これは、APIサーバからデータを取得するための私のコードです:Swift 3 ObjectMapper - MapオブジェクトへのURLSessionの結果をキャストできません。
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'