2013-08-04 2 views
1

Я использую AFImageRequestOperation, чтобы загрузить сотни jpg с моего сервера.cached image Дата в AFImageRequestOperation

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]; 

Если я удалить их все (удаление всех изображений в папке Documents) и начать загрузку снова, первый X (зависит от того, насколько я получил во время последнего процесса загрузки) операции обрабатываются немедленно. Похоже, что изображения, загруженные из предыдущего процесса, где-то хранятся (кэшируются). Я также проверил папку «Документы» для симулятора, и изображения загружены правильно. Итак, как я могу убедиться, что процесс загрузки действительно начинается с самого начала?

ответ

2

Когда вы создаете NSURLRequest, используйте вместо этого:

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

Эта политика описана в документации следующим образом: Указывает, что существующие данные кэша могут быть использованы при условии, что источник происхождения подтверждает его в противном случае URL-адрес загружается из источника происхождения.

Вы можете проверить политики кэширования NSURLRequest here.

+1

Несмотря на то, что ваше предложение, похоже, правильно, политика NSURLRequestReloadRevalidatingCacheData еще не реализована с iOS 7.1. См. Эту статью http://nshipster.com/nsurlcache/ – apalvai