• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - AFNetworking 2.0 上的缓存

[复制链接]
菜鸟教程小白 发表于 2022-12-13 05:28:25 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

所以这就是交易。我最近开始使用 AFNetworking 在开始时使用以下代码下载一些文件:

NSMutableURLRequest* rq = [api requestWithMethod"GET" path"YOUR/URL/TO/FILE"     parameters:nil];
AFHTTPRequestOperation *operation = [[[AFHTTPRequestOperation alloc] initWithRequest:rq] autorelease];

NSString* path=[@"/PATH/TO/APP" stringByAppendingPathComponent: imageNameToDisk];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

    NSLog(@"SUCCCESSFULL IMG RETRIEVE to %@!",path)

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

    // Deal with failure
}];

我的路径实际上插入了路径变量(对不起,现在不在正确的计算机上实际复制意大利面文本,但它与上面的完全相同,但路径不同)

一切都很好!我正在成功下载文件和所有内容。我目前的问题是我试图让缓存工作,但我遇到了很多困难。基本上,我不确定从 AFNetworking 2.0 开始我实际上需要在客户端做什么。我还需要设置 NSURlCache 吗?我是否需要在请求操作上设置不同的缓存类型 header ?我认为它可能只是 完全 内置的,但每次代码运行时我都会收到 200 的状态,即使文件没有更改。如果我必须使用 NSUrlCache,我是否必须自己手动保存成功 block 请求操作上的电子标签,然后再将其反馈回来?任何有关如何取得进展的帮助将不胜感激。谢谢大家!



Best Answer-推荐答案


AFNetworking 默认使用 NSURLCache 进行缓存。来自 the FAQ :

AFNetworking takes advantage of the caching functionality already provided by NSURLCache and any of its subclasses. So long as your NSURLRequest objects have the correct cache policy, and your server response contains a valid Cache-Control header, responses will be automatically cached for subsequent requests.

注意这个机制缓存了NSData,所以每次你从这个缓存中检索你需要执行一个有点昂贵的NSData-to-UIImage 操作。这对于快速显示来说性能不够,例如,如果您在 UITableViewUICollectionView 中显示图像。

如果是这种情况,请查看 UIImageView+AFNetworking ,它将 UIImage 对象的下载和缓存添加到 UIImageView。对于某些应用程序,您可以只使用开箱即用的实现,但它是非常基本的。您可能想查看这个类的源代码(它不是很长)并将其用作您自己的缓存机制的起点。

关于ios - AFNetworking 2.0 上的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19905814/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap