diff --git a/AFNetworking/UIImageView+AFNetworking.h b/AFNetworking/UIImageView+AFNetworking.h index d983f36..16f8889 100644 --- a/AFNetworking/UIImageView+AFNetworking.h +++ b/AFNetworking/UIImageView+AFNetworking.h @@ -30,9 +30,9 @@ - (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage; -- (void)setImageWithURL:(NSURL *)url - placeholderImage:(UIImage *)placeholderImage - success:(void (^)(UIImage *image, BOOL cacheUsed))block; +- (void)setImageWithURLRequest:(NSURLRequest *)urlRequest + placeholderImage:(UIImage *)placeholderImage + success:(void (^)(UIImage *image, BOOL cacheUsed))success; - (void)cancelImageRequestOperation; diff --git a/AFNetworking/UIImageView+AFNetworking.m b/AFNetworking/UIImageView+AFNetworking.m index da3454c..7140fd5 100644 --- a/AFNetworking/UIImageView+AFNetworking.m +++ b/AFNetworking/UIImageView+AFNetworking.m @@ -98,29 +98,29 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"_af_imageRequestOp - (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage { - [self setImageWithURL:url placeholderImage:placeholderImage success:nil]; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLCacheStorageAllowed timeoutInterval:30.0]; + [request setHTTPShouldHandleCookies:NO]; + [request setHTTPShouldUsePipelining:YES]; + + [self setImageWithURLRequest:request placeholderImage:placeholderImage success:nil]; } -- (void)setImageWithURL:(NSURL *)url - placeholderImage:(UIImage *)placeholderImage - success:(void (^)(UIImage *image, BOOL cacheUsed))success +- (void)setImageWithURLRequest:(NSURLRequest *)urlRequest + placeholderImage:(UIImage *)placeholderImage + success:(void (^)(UIImage *image, BOOL cacheUsed))success { - if (!url || (![self.imageRequestOperation isCancelled] && [url isEqual:self.imageRequestOperation.request.URL])) { + if (![urlRequest URL] || (![self.imageRequestOperation isCancelled] && [[urlRequest URL] isEqual:self.imageRequestOperation.request.URL])) { return; } else { [self cancelImageRequestOperation]; } - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLCacheStorageAllowed timeoutInterval:30.0]; - [request setHTTPShouldHandleCookies:NO]; - [request setHTTPShouldUsePipelining:YES]; - NSString *cacheName = @"UIImageView"; if (placeholderImage) { cacheName = [cacheName stringByAppendingFormat:@"(%@)", NSStringFromCGSize(placeholderImage.size)]; } - UIImage *cachedImage = [[AFImageCache sharedImageCache] cachedImageForRequest:request cacheName:cacheName]; + UIImage *cachedImage = [[AFImageCache sharedImageCache] cachedImageForRequest:urlRequest cacheName:cacheName]; if (cachedImage) { self.image = cachedImage; @@ -130,7 +130,7 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"_af_imageRequestOp } else { self.image = placeholderImage; - self.imageRequestOperation = [AFImageRequestOperation operationWithRequest:request imageProcessingBlock:^UIImage *(UIImage *image) { + self.imageRequestOperation = [AFImageRequestOperation operationWithRequest:urlRequest imageProcessingBlock:^UIImage *(UIImage *image) { if (placeholderImage) { image = AFImageByScalingAndCroppingImageToSize(image, placeholderImage.size); } @@ -154,7 +154,9 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"_af_imageRequestOp self.imageRequestOperation = nil; }]; - [[[self class] sharedImageRequestOperationQueue] addOperation:self.imageRequestOperation]; + if ([urlRequest cachePolicy] != NSURLCacheStorageNotAllowed) { + [[[self class] sharedImageRequestOperationQueue] addOperation:self.imageRequestOperation]; + } } }