Skip to content

Instantly share code, notes, and snippets.

@iRiziya
Forked from winzig/Alamofire+UIImage.swift
Created September 29, 2015 05:43
Show Gist options
  • Save iRiziya/df72406a8d3ca82cf1e6 to your computer and use it in GitHub Desktop.
Save iRiziya/df72406a8d3ca82cf1e6 to your computer and use it in GitHub Desktop.
Ray Wenderlich's UIImage serializer for Alamofire, updated for Alamofire 2.0 and Swift 2
extension Alamofire.Request {
/** Response serializer for images from: http://www.raywenderlich.com/85080/beginning-alamofire-tutorial */
class func imageResponseSerializer() -> GenericResponseSerializer<UIImage> {
return GenericResponseSerializer { request, response, data 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(data, error)
}
if let image = UIImage(data: validData, scale: UIScreen.mainScreen().scale) {
return Result<UIImage>.Success(image)
}
else {
return .Failure(data, Error.errorWithCode(.DataSerializationFailed, failureReason: "Unable to create image."))
}
}
}
/** Convenience method for returning images from: http://www.raywenderlich.com/85080/beginning-alamofire-tutorial */
func responseImage(completionHandler: (NSURLRequest?, NSHTTPURLResponse?, Result<UIImage>) -> Void) -> Self {
return response(responseSerializer: Request.imageResponseSerializer(), completionHandler: completionHandler)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment