我正在使用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(取决于我在上次下载过程中获得的程度)操作。似乎从先前进程下载的图像存储(缓存)在某处。我还检查了文档文件夹中的模拟器,并正确下载了图像。那么如何确保下载过程真正从一开始就开始呢?
答案 0 :(得分:2)
当您创建NSURLRequest
时,请改用:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:theURL];
request.cachePolicy = NSURLRequestReloadRevalidatingCacheData;
此策略在文档中以下列方式描述:指定可以使用现有缓存数据,前提是源源确认其有效性,否则URL将从源源加载。
您可以查看NSURLRequest here的缓存政策。