Search code examples
serializationswift2ios9xcode7alamofire

Alamofire 3.0.0-beta.3 Image Response Serialization


Can some one help me please, I'm trying to implement Alamofire image response serialization method : imageResponseSerializer,

Here is my code :

extension Alamofire.Request {
    class func imageResponseSerializer() -> ResponseSerializer<UIImage, NSError> {
        return ResponseSerializer<UIImage, NSError> { request, response, data, error in

            guard let validData = data else {
                let failureReason = "Data could not be serialized. Input data was nil."
                let error = Error.errorWithCode(.DataSerializationFailed, failureReason: failureReason)
                return .Failure(error)
            }

            if let image = UIImage(data: validData, scale: UIScreen.mainScreen().scale) {
                return Result<UIImage, NSError>.Success(image)
            }
            else {
                return .Failure(Error.errorWithCode(.JSONSerializationFailed, failureReason: "Unable to create image."))
            }
        }
    }

    func responseImage(completionHandler: (NSURLRequest?, NSHTTPURLResponse?, Result<UIImage, NSError>) -> Void) -> Self {
        return response(responseSerializer: Request.imageResponseSerializer(), completionHandler: { request, response, result in
            completionHandler(request, response, result)
        })
    }
}

Error : cannot call value of non-function type 'NSHTTPURLResponse?'

I'm using : Xcode 7.0.1, Swift 2 and Alamofire 3.0.0-beta.3

Thank you,


Solution

  • You should really check out AlamofireImage. 1) It has all this implemented already. 2) It has many other awesome features that you will most likely find handy.