- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 AlamofireImage 将图像加载到 TableView 单元格中的 ImageView 中(在单独的 xib 文件中)问题是图像永远不会出现。我认为代码是正确的,url 也是有效的。
这是代码(非常简单):
let placeholderImage = UIImage(named: "imgNoPhoto1")
if let urlImage = NSURL(string: urlString) {
photoImage.af_setImageWithURL(urlImage, placeholderImage: placeholderImage)
}
有什么想法吗?可能是细胞没有被重新加载吗?我已经在 iOS 8 和 9 中对其进行了测试。
希望你能帮助我!谢谢
最佳答案
根据您是否在 prepareForReuse
中取消请求,您可能会遇到我刚刚在 AlamofireImage #55 中修复的错误.在接下来的几天里,我将在这里推出一个包含此修复程序的新版本。如果这确实是您遇到的问题,您现在可以注释掉取消逻辑,这应该可以解决您的问题,直到我们发布修复程序。
如果这不是您遇到的问题,那么我会听从其他人的建议,确保您可以使用 cURL
下载图像。
好的,我知道你的问题是什么。服务器未返回有效的内容类型,这导致 AlamofireImage 无法验证图像并且不会尝试将数据解码为图像。您可以通过在终端中运行以下命令找到它:
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。它不下载图像数据,它只是打印出响应头。我还发现您需要传递 User-Agent
header ,否则您将始终收到 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
现在这个输出中真正重要的部分是 Content-Type: image/jpg
。这实际上不是有效的 Content-Type
header 。有效的是 image/jpeg
。因此,默认情况下,AlamofireImage 不会验证此响应,也不会解码图像。
值得庆幸的是,我们已经在 AlamofireImage 中内置了对此的支持。您可以将自定义内容类型添加到 Request
响应序列化程序。具体操作如下:
Alamofire.Request.addAcceptableImageContentTypes(["image/jpg"])
这会将 image/jpg
内容类型注册为响应序列化系统可接受的内容类型。注册后,任何匹配 image/jpg
的内容类型都将被解码。有关这方面的更多信息,请参阅 AlamofireImage #58 .
关于iOS 9 Alamofire 从不加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34204235/
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 6 年前。 Improve t
notificationCenterPublisher = NotificationCenter.default .publisher(for: .NSManagedObjec
我有以下 Rust 代码: #[inline(never)] fn x() -> i32 { 21 } pub fn main() -> i32 { x() } 如果没有优化 (-C
notificationCenterPublisher = NotificationCenter.default .publisher(for: .NSManagedObjec
我有以下 Rust 代码: #[inline(never)] fn x() -> i32 { 21 } pub fn main() -> i32 { x() } 如果没有优化 (-C
假设我的 ASPX 页面没有内联 C# 代码块。 所以,我可以安全地设置 ...在我的 web.config 文件中,不用担心编译错误。 就性能而言,使用以下设置是否会有任何损失? 即“自动”检测
应用程序.js var win1 = Titanium.UI.createWindow({ title:'Tab 1', backgroundColor: 'black', l
基本上,我正在为实现多级优先级队列的 xv6 内核实现一个调度程序。我有一个严重的问题,我不明白,我类(class)的助教不明白,我已经错过了这个项目的最后期限,所以现在帮助我不会给我任何加分 - 但
我想避免 git 自动 merge 我的 composer.json。这样我就可以在 develop 分支中有一个使用 dev-develop 包的 composer.json,而 master 中的
当比较两种不同的算法实现时(因此,不关心它们的绝对性能,而只关心相对性能)我是否最好强制 Java 只运行解释代码? 也就是说,打开 -Xint 标志会更好吗? 最佳答案 我不认为禁用 JIT 会更好
class A{ const size_t number; public: A(size_t number): number(number) {} void f(){
问题 寻找在以下之间切换的方法: 总是 从不 仅在静默模式下 仅当不处于静默模式时 这些选项在手机上的路径---菜单>>设置>>声音>>振动---找到。 通过手机导航很容易更改(顺便说一句,我的手机是
如何设置电源设置关闭:从不(关闭显示器=从不,让计算机进入休眠状态=从不),通过c#代码 最佳答案 这个问题中给出的链接可以告诉你一个方法。 Programmatically change Windo
我是一名优秀的程序员,十分优秀!