2015-05-14 17 views
11

Wydaje jeśli zadzwonię:Buforowanie w AFNetworking + UIImageView nie respektuje żadnych zasad dotyczących pamięci podręcznej http? (Mam nadzieję, że się mylę)

setImageWithURLRequest:(NSURLRequest *)urlRequest 
       placeholderImage:(UIImage *)placeholderImage 
         success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image))success 
         failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure 

że uzyskany obraz będzie oddany do AFNetworking za AFImageCache niezależnie od polityki cache ustawionym w nagłówkach odpowiedzi HTTP i będzie tam pozostać i być pobrane od niezależnie od wieku, na kolejnych prośbach o ten sam adres URL.

Czy to jest dokładne?

Jedyną rzeczą, która zmusza go do ignorowania cache, jest ustawienie NSURLRequestReloadIgnoringCacheData lub NSURLRequestReloadIgnoringLocalAndRemoteCacheData we wniosku (przy okazji powstały obraz będzie się re-buforowane przez AFNetworking, więc to jest jeden sposób, aby zmusić go do odświeżenia to cache).

Teraz, jeśli AFImageCache nie zwróci żadnego trafienia, to AFNetworking (chyba) dla dokładnie jednego żądania, użyje domyślnego NSURLCache Apple'a, który teoretycznie respektuje nagłówki cache'a HTTP. Jest to jednak tylko jedna prośba, ponieważ AFNetworking, a następnie przekazuje wynik do swojej własnej pamięci podręcznej, która nie jest dostępna dla protokołu http.

Daj mi znać, jeśli coś jest nie tak lub coś przeoczyłem.

Odpowiedz