1

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(取决于我在上次下载过程中获得的距离)操作。似乎从前一个过程下载的图像存储(缓存)在某处。我还检查了模拟器的文档文件夹,并且图像已正确下载。那么如何确保下载过程真正从头开始呢?

4

1 回答 1

2

当您创建 时NSURLRequest,请改用它:

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

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

你可以在这里查看 NSURLRequest 的缓存策略。

于 2013-08-05T09:34:08.593 回答