Serialization 阿拉莫菲尔可解码序列化程序

Serialization 阿拉莫菲尔可解码序列化程序,serialization,alamofire,Serialization,Alamofire,我正在尝试更新Alamofire自定义响应序列化程序的一些代码,我在“bits of cocoa”中找到了这段代码 根据最后的评论:Response和ResponseSerializer现在还没有解决,这在昨天的工作中没有错误。但是,今天早上更新xcode和alamofire时出现了这样的错误 嗯。我发现了这个,所以这应该可以修复错误,因为我发现了这个,我认为这可以修复它。我会知道什么时候我可以测试这个,就像一个笔记。最后一个代码确实有效:)更新到新的xcode 8 GM和最新的Alamofir

我正在尝试更新Alamofire自定义响应序列化程序的一些代码,我在“bits of cocoa”中找到了这段代码


根据最后的评论:Response和ResponseSerializer现在还没有解决,这在昨天的工作中没有错误。但是,今天早上更新xcode和alamofire时出现了这样的错误

嗯。我发现了这个,所以这应该可以修复错误,因为我发现了这个,我认为这可以修复它。我会知道什么时候我可以测试这个,就像一个笔记。最后一个代码确实有效:)更新到新的xcode 8 GM和最新的Alamofire代码,我在
Response
上收到错误,说它现在未声明,
ResponseSerializer
也未解决。所以我需要再次修复这个问题。我会发布一个最终答案,如果有人能更快地发布,我会发布:)好的。我发现了这个,所以这应该可以修复错误,因为我发现了这个,我认为这可以修复它。我会知道什么时候我可以测试这个,就像一个笔记。最后一个代码确实有效:)更新到新的xcode 8 GM和最新的Alamofire代码,我在
Response
上收到错误,说它现在未声明,
ResponseSerializer
也未解决。因此,我需要再次修复此问题。我将发布此问题的最终答案,但有些人可以更快地发布:)
extension Alamofire.Request {
    public func responseCollection<T: Decodable>(completionHandler: Response<[T], NSError> -> Void) -> Self {
        let responseSerializer = ResponseSerializer<[T], NSError> { request, response, data, error in

            guard error == nil else { return .Failure(error!) }

            let result = Alamofire
                .Request
                .JSONResponseSerializer(options: .AllowFragments)
                .serializeResponse(request, response, data, error)

            switch result {
            case .Success(let value):
                do {
                    return .Success(try [T].decode(value))
                } catch {
                    return .Failure(Error.errorWithCode(.JSONSerializationFailed,
                                                        failureReason: "JSON parsing error, JSON: \(value)"))
                }
            case .Failure(let error): return.Failure(error)
            }
        }

        return response(responseSerializer: responseSerializer, completionHandler: completionHandler)
    }
}
    extension Alamofire.Request {
        public func responseCollection<T: Decodable>(completionHandler: (Response<[T]>) -> Void) -> Self {
            let responseSerializer = ResponseSerializer<[T]> { request, response, data, error in

                guard error == nil else { return .failure(error!) }

                let result = Alamofire
                    .Request
                    .JSONResponseSerializer(options: .allowFragments)
                    .serializeResponse(request, response, data, error)

                switch result {
                case .success(let value):
                    do {
                        return .success(try [T].decode(value))
                    } catch {
                        return .failure(Error(.errorWithCode(.JSONSerializationFailed, failureReason: "JSON parsing error, JSON: \(value)")))
                    }
                case .failure(let error): return.failure(error)
                }
            }

            return response(responseSerializer: responseSerializer, com

pletionHandler: completionHandler)
    }
}
extension Alamofire.Request {
    public func responseDecodable<T: Decodable>(completionHandler: @escaping (Response<T>) -> Void) -> Self {
        let responseSerializer = ResponseSerializer<T> { request, response, data, error in

            guard error == nil else {
                print("error Network request: \(error)")
                return .failure(error!)
            }

            let result = Alamofire
                .Request
                .JSONResponseSerializer(options: .allowFragments)
                .serializeResponse(request, response, data, error)

            switch result {
            case .success(let value):
                do {
                    let decodableObject = try T.decode(value)
                    return .success(decodableObject)
                } catch let decodeErr {
                    print(decodeErr)
                    let failureReason = "JSON parsing error, JSON: \(value)"
                    let userInfo = [NSLocalizedFailureReasonErrorKey: failureReason]
                    let error = NSError(domain: "com.prospects.error", code: BackendError.JSONSerializationFailed.rawValue, userInfo: userInfo)
                    return .failure(error)
                }
            case .failure(let error): return.failure(error)
            }
        }

        return response(responseSerializer: responseSerializer, completionHandler: completionHandler)
    }
}

public protocol ResponseObjectSerializable {
    init?(response: HTTPURLResponse, representation: AnyObject)
}