From bd6fc88c014f0b8149a45a5340f11c4d0e1c27c7 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 12 Sep 2011 17:19:57 +0200 Subject: [PATCH] allow imageRequestOperation to be cancelled --- AFNetworking/UIImageView+AFNetworking.m | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/AFNetworking/UIImageView+AFNetworking.m b/AFNetworking/UIImageView+AFNetworking.m index d1f5070..425f8e3 100644 --- a/AFNetworking/UIImageView+AFNetworking.m +++ b/AFNetworking/UIImageView+AFNetworking.m @@ -87,6 +87,9 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"imageRequestOperat block:(void (^)(UIImage *image))block { if (!url) { + // stop loading image + [self.imageRequestOperation cancel]; + self.imageRequestOperation = nil; return; } @@ -105,14 +108,16 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"imageRequestOperat self.image = placeholderImage; self.imageRequestOperation = [AFImageRequestOperation operationWithRequest:request imageSize:imageSize options:options success:^(UIImage *image) { - if ([[request URL] isEqual:[[self.imageRequestOperation request] URL]]) { - self.image = image; - } else { - self.image = placeholderImage; - } - - if (block) { - block(image); + if (self.imageRequestOperation && ![self.imageRequestOperation isCancelled]) { + if ([[request URL] isEqual:[[self.imageRequestOperation request] URL]]) { + self.image = image; + } else { + self.image = placeholderImage; + } + + if (block) { + block(image); + } } }];