Когда я запускаю запрос с политикой NSURLRequestReturnCacheDataElseLoad
, я ожидаю получить результат от политики NSURLCache
, если таковая имеется, независимо от ее возраста. Однако система всегда пытается связаться с сервером, на который указывает запрос, и возвращает ошибку, если сервер не отвечает.
Я использую категорию UIImageView
из AFNetworking
для запроса.
NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0];
__weak __typeof(self) weakSelf = self;
NSLog(@"[%@] %@", request.URL, [[NSURLCache sharedURLCache] cachedResponseForRequest:request]); // this returns an instance of NSCachedURLResponse!
[self setImageWithURLRequest:request placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
__typeof(weakSelf) self = weakSelf;
self.image = image;
} failure:NULL];
Это не установит изображение, даже если прямой запрос NSURLCache вернет действительный NSCachedURLResponse
.
Приложение работает только на iOS6, так что проблем с кешем на диске, насколько я знаю, быть не должно?!
Любая помощь приветствуется! Спасибо!