ios - 使用 AFNetworking API 的 NSURLCache 图像

标签 ios image caching afnetworking

我有一个从服务器下载图像的应用程序。这些图像大约有 56 KB,并且至少有 30 张。有时用户没有连接或边缘连接(拨号)。

我在我的 AppDelegate.h 中使用 NSURLCache 是这样的:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   
    int cacheSizeMemory = 4*1024*1024; // 4MB
    int cacheSizeDisk = 32*1024*1024; // 32MB
    NSURLCache *sharedCache = [[[NSURLCache alloc] initWithMemoryCapacity:cacheSizeMemory diskCapacity:cacheSizeDisk diskPath:@"nsurlcache"] autorelease];
    [NSURLCache setSharedURLCache:sharedCache]; 

但出于某种原因,它不会缓存图像。如果我加载所有可用互联网连接的图像,然后断开连接或使用边缘网络,它会再次获取图像。

最佳答案

编辑:如果您使用 NSURLRequest 的 NSURLRequestReturnCacheDataElseLoad cachePolicy 或返回适当的 Cache-Control header ,iOS 5 及更高版本支持磁盘缓存。

有关缓存的问题在 AFNetworking F.A.Q. 中有解释。 .

综上所述,似乎在 iOS 上,NSURLCache不提供磁盘缓存功能,即使您创建 NSURLCachediskCapacity>0 (它似乎被忽略了),解决方案是使用 NSURLCache 的一些其他实现。喜欢 SDURLCache 在常见问题解答中建议。

关于ios - 使用 AFNetworking API 的 NSURLCache 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069257/

相关文章:

css - 让浏览器从实时网站上的缓存中刷新的最佳方法?

nginx - 特定数量的请求后,在Varnish-Cache中缓存资源

java - 使用 HTML5 localStorage 在 GWT 应用程序/小部件中缓存

ios - 使用 SwiftUI 呈现多个模式表

ios - 使用搜索栏后返回导航栏时模拟器黑屏

iphone - 实现 NSCopying

c# - 在富文本框中的光标位置插入图像

javascript - 响应式相对元素调整大小+响应式文本覆盖

asp.net - 如何在 Windows Azure 上使用多个实例的 asp.net 缓存

ios - 推送不起作用(错误 : Could not get)