我正在寻找将 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/