Alamofire 3 と最新バージョンの ObjectMapper ( https://github.com/Hearst-DD/ObjectMapperAlamofireObjectMapper
) を使用して( https://github.com/tristanhimmelman/AlamofireObjectMapper )を実装しようとしています。
は Alamofire 3 で動作するように更新されていないようAlamofireObjectMapper
なので、自分でやろうとしています。
私はこのコードにたどり着きましたが、今は行き詰まっています。
ジェネリック タイプ T は、応答の完了ブロック内でアクセスできないようです。3 の変更ですかAlamofire
、それとも Swift 2.1 の変更ですか?
これはエラーです:
'T?' 型の値を変換できません 期待される引数の型 '_?' に
public func responseObject<T: Mappable>(queue: dispatch_queue_t?, keyPath: String?, completionHandler: (NSURLRequest, NSHTTPURLResponse?, T?, AnyObject?, ErrorType?) -> Void) -> Self {
return response(queue: queue) { (request, response, data, error) -> Void in
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
let JSONResponseSerializer = Request.JSONResponseSerializer(options: .AllowFragments)
let result = JSONResponseSerializer.serializeResponse(request, response, data, error)
let parsedObject = Mapper<T>().map(keyPath != nil ? result.value?[keyPath!] : result.value)
dispatch_async(queue ?? dispatch_get_main_queue()) {
completionHandler(self.request!, self.response, parsedObject, result.value ?? response.data, result.error) // Here it shows the error: Cannot convert value of type 'T?' to expected argument type '_?'
}
}
}
}