NSURLCache не используется NSURLConnection/AFNetworkingOperation

Когда я запускаю запрос с политикой 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, так что проблем с кешем на диске, насколько я знаю, быть не должно?!

Любая помощь приветствуется! Спасибо!


person Michael Ochs    schedule 14.05.2013    source источник


Ответы (1)


Это известная проблема. Обратитесь к этому обсуждению на AFNetworking странице github, чтобы найти обходной путь.

person Amar    schedule 14.05.2013