ios - AFNetworking 中 UIImageView 的磁盘备份图像缓存

标签 ios objective-c afnetworking nsurlcache

我正在寻找将 UIImageView+AFNetworking 类别中默认使用的 AFImageCache 换成基于磁盘的东西,并且可以更准确地管理(一些东西像 NSURLCache )。不幸的是,由于 UIImageView+AFNetworking 是一个类别而不是子类,我不能只覆盖 af_sharedImageCache具有 UIImageView 或其他类别的子类。

有没有其他方法可以在不将大部分 UIImageView+AFNetworking 复制粘贴到我自己的子类中的情况下实现此功能?

最佳答案

SDWebImage项目提供了类似的 UIImageView 类别,但同时提供内存中(使用 NSCache)和磁盘上(使用 NSFileManager)缓存。我建议您只在需要缓存到磁盘时使用它。

此实现的缺点是您的网络请求不会通过您的 AFHTTPClient 子类,因此根据您的需要,您可能需要实现自己的操作队列、身份验证等。如果您只是将它用于一些基本的事情,比如在表格 View 中显示头像图像,它应该没问题。

如果这个缺点困扰您,另一种想法是使用 SDImageCache(包含在 SDWebImage 项目中)来缓存图像,然后使用 AFNetworking 自行下载它们。

最后,请注意 AFNetworking 内置了对 NSURLCache 的支持,如果您创建一个它会将您的图像缓存到磁盘。然而,图像缓存通常用于在 UIScrollView 中显示大量图像,而 NSURLCache 没有足够好的性能来实现平滑滚动。

关于ios - AFNetworking 中 UIImageView 的磁盘备份图像缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17076944/

相关文章:

ios - IOS6 中的 NSDictionary 问题?

java - 将 .pem 文件转换为 .p12 以在 ios 中推送通知

iphone - 无法从另一个应用程序内启动 Google map 应用程序

ios - 在 ios 中启动应用程序时如何提供特定的 wifi 凭据?

ios - 将大数除以 1000 并四舍五入到小数点后一位

iOS 加密通知声音

objective-c - UITapGestureRecognizer 不适用于 UILabel

ios - 具有自签名 SSL 和 HTTP 基本身份验证的 AFHTTPRequestOperation(-1012 错误)

ios - 如何设置 AFNetworking 2.0 默认 header ?

objective-c - AFNetworking 从 iOS 上传图片到 API