缓存图像AFImageRequestOperation中的日期

时间:2013-08-04 17:52:22

标签: objective-c afnetworking nsoperation

我正在使用AFImageRequestOperation从我的服务器下载数百个jpg。

NSURLRequest *request = [NSURLRequest requestWithURL:theURL cachePolicy:NSURLCacheStorageNotAllowed timeoutInterval:20];
AFImageRequestOperation *operation;
operation = [AFImageRequestOperation imageRequestOperationWithRequest:request
                                                imageProcessingBlock:nil
                                                success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {}
                                                failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {}
                                                ];

operation.outputStream = [NSOutputStream outputStreamToFileAtPath:[[paths objectAtIndex:0] stringByAppendingPathComponent:picture] append:NO];
[downloadQueue addOperation:operation];

如果我将它们全部删除(删除文件夹中的所有图像)并再次开始下载,则会立即处理第一个X(取决于我在上次下载过程中获得的程度)操作。似乎从先前进程下载的图像存储(缓存)在某处。我还检查了文档文件夹中的模拟器,并正确下载了图像。那么如何确保下载过程真正从一开始就开始呢?

1 个答案:

答案 0 :(得分:2)

当您创建NSURLRequest时,请改用:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:theURL];
request.cachePolicy = NSURLRequestReloadRevalidatingCacheData;

此策略在文档中以下列方式描述:指定可以使用现有缓存数据,前提是源源确认其有效性,否则URL将从源源加载。

您可以查看NSURLRequest here的缓存政策。