iOS 9 Alamofire从不加载图像

iOS 9 Alamofire从不加载图像,ios,uitableview,alamofire,tableviewcell,alamofireimage,Ios,Uitableview,Alamofire,Tableviewcell,Alamofireimage,我正在使用AlamofireImage将图像加载到tableview单元格中的ImageView中(在一个单独的xib文件中) 问题是图像永远不会出现。我认为代码是正确的,url也是有效的 下面是代码(非常简单): 有什么想法吗?可能是电池没有被重新加载?我已经在iOS 8和iOS 9中进行了测试 希望你能帮助我! 谢谢根据您是否在prepareforuse中取消请求,您可能会遇到我刚刚修复的错误。在接下来的几天里,我将在这里推出一个新版本。如果这确实是您遇到的问题,您现在可以注释掉取消逻辑,这

我正在使用AlamofireImage将图像加载到tableview单元格中的ImageView中(在一个单独的xib文件中) 问题是图像永远不会出现。我认为代码是正确的,url也是有效的

下面是代码(非常简单):

有什么想法吗?可能是电池没有被重新加载?我已经在iOS 8和iOS 9中进行了测试

希望你能帮助我!
谢谢

根据您是否在
prepareforuse
中取消请求,您可能会遇到我刚刚修复的错误。在接下来的几天里,我将在这里推出一个新版本。如果这确实是您遇到的问题,您现在可以注释掉取消逻辑,这将解决您的问题,直到我们发布修复程序

如果这不是您遇到的问题,那么我会按照其他人的建议,确保您可以使用
cURL
下载图像


更新#1 好吧,我发现了你的问题所在。服务器未返回有效的内容类型,这导致AlamoFileImage无法验证图像,并且不会尝试将数据解码为图像。您可以通过在终端中运行以下命令来找到这一点:

curl -H "User-Agent: iOS" -s -D - http://files.encuentra24.com/normalsq/sv/58/08/68/sv/58/08/68/5808689_5e7d99.jpg -o /dev/null
这样做的目的是针对您提供的URL运行curl。它不下载图像数据,只打印响应头。我还发现您需要传递
用户代理
头,否则您将始终得到403。下面是curl命令将打印的内容:

cnoon:~$ curl -H "User-Agent: iOS Example/com.alamofire.iOS-Example (1; OS Version 9.1 (Build 13B137))" -s -D - http://files.encuentra24.com/normalsq/sv/58/08/68/sv/58/08/68/5808689_5e7d99.jpg -o /dev/null
HTTP/1.1 200 OK
Cache-Control: max-age=2592000, public
Content-Type: image/jpg
Date: Fri, 11 Dec 2015 16:16:38 GMT
Expires: Sun, 10 Jan 2016 16:16:38 GMT
Pragma: no-cache
Server: nginx/1.7.12
Set-Cookie: sessioninfo=uv491lgtjqvkmt267l1nmlbm24; path=/
Set-Cookie: esid=deleted; expires=Thu, 11-Dec-2014 16:16:37 GMT; path=/
Vary: Accept-Encoding
Content-Length: 23757
现在,这个输出的真正重要部分是
内容类型:image/jpg
。这实际上不是有效的
内容类型
标题。有效的是
image/jpeg
。因此,默认情况下,AlamofireImage不会验证此响应,也不会解码图像

解决方案 谢天谢地,我们已经得到了AlamofireImage内置的支持。您可以向
请求
响应序列化程序添加自定义内容类型。您是如何做到这一点的,如下所示:

Alamofire.Request.addAcceptableImageContentTypes(["image/jpg"])

这将在响应序列化系统中将
image/jpg
内容类型注册为可接受的内容类型。注册后,任何与
image/jpg
匹配的内容类型都将被解码。有关这方面的更多信息,请参阅。

您是否看到占位符图像或什么都没有?您是否检查了从url获取的图像类型?您的代码似乎正常,但图像类型可能是问题所在。@sage444是的,占位符始终显示。假设加载图像时,占位符必须被图像替换,但不起作用…@VijaySanghavi这是一个jpg。下面是我收到的一个url:请用curl
curl-v”检查这个urlhttp://files.encuentra24.com/normalsq/sv/58/08/68/sv/58/08/68/5808689_5e7d99.jpg“
Hello@cnoon谢谢你的回答。我只是从具有表视图的视图控制器执行get请求,然后在cellForRowAtIndexPath中将url传递给单元格。(单元格位于单独的xib中)可能问题在于我没有使用正确的单元格生命周期方法设置映像。非常感谢!在使用URL设置图像之前,我添加了这行Alamofire.Request.addAcceptableImageContentTypes([“image/jpg”]),现在显示了照片!!你救了我一天:)太棒了…很高兴听到这个消息!
Alamofire.Request.addAcceptableImageContentTypes(["image/jpg"])