【发布时间】:2015-09-17 18:17:57
【问题描述】:
我正在尝试使用我在 Xcode 7 中获得 raywenderlich.com 的这段代码。但是在返回行给我的错误提示是
无法将
(NilLiteralConvertible, NilLiteralConvertible)类型的返回表达式转换为Result<UIImage>类型的返回表达式
extension Alamofire.Request {
public static func imageResponseSerializer() -> GenericResponseSerializer<UIImage> {
return GenericResponseSerializer { request, response, data in
if data == nil {
return (nil, nil)
}
let image = UIImage(data: data!, scale: UIScreen.mainScreen().scale)
return (image, nil)
}
}
public func responseImage(completionHandler: (NSURLRequest, NSHTTPURLResponse?, UIImage?, NSError?) -> Void) -> Self {
return response(responseSerializer: Request.imageResponseSerializer(), completionHandler: completionHandler)
}
}
在http://www.raywenderlich.com/85080/beginning-alamofire-tutorial查看原始代码
【问题讨论】:
-
很难提供准确的答案,因为整个项目都需要转换,我不知道您是如何转换 Alamofire 的库的。对于初学者,我会尝试返回一个非可选的
UIImage并查看它是否有效,理想情况下你会修复GenericResponseSerializer以至少接受一个UIImage?可选。 -
嗯,谢谢你的回答,但是当我将 UIImage 设置为返回类型时,xcode 被卡住了
-
@miracle-doh 你让它工作了吗?我正在使用 swift 2.0 和 alamofire 3.0 遵循相同的教程,但我遇到了 3 个内置错误
-
是的,正确的答案是有效的。我是这样使用的
Alamofire.request(.GET, imageURL).validate(contentType: ["image/*"]).responseImage() { (_, _, result) in guard let image = result.value else { print("could not fetch image value") return } //do stuff withimage`}`
标签: ios swift swift2 alamofire