gpt4 book ai didi

ios - 在 AFNetworking 2.0 上缓存

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:44:51 26 4
gpt4 key购买 nike

所以这是交易。我最近开始使用 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 requestoperation 上,然后将其反馈回去?任何有关如何取得进展的帮助将不胜感激。谢谢大家!

最佳答案

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com