diff --git a/AFNetworking/UIImageView+AFNetworking.h b/AFNetworking/UIImageView+AFNetworking.h index 72a19ec..b6deef6 100644 --- a/AFNetworking/UIImageView+AFNetworking.h +++ b/AFNetworking/UIImageView+AFNetworking.h @@ -41,4 +41,6 @@ options:(AFImageRequestOptions)options block:(void (^)(UIImage *image, BOOL cacheUsed))block; +- (void)cancelImageRequestOperation; + @end diff --git a/AFNetworking/UIImageView+AFNetworking.m b/AFNetworking/UIImageView+AFNetworking.m index ebd483b..62ea896 100644 --- a/AFNetworking/UIImageView+AFNetworking.m +++ b/AFNetworking/UIImageView+AFNetworking.m @@ -27,7 +27,7 @@ #import "AFImageCache.h" -static NSString * const kUIImageViewImageRequestObjectKey = @"imageRequestOperation"; +static NSString * const kUIImageViewImageRequestObjectKey = @"_af_imageRequestOperation"; @interface UIImageView (_AFNetworking) @property (readwrite, nonatomic, retain) AFImageRequestOperation *imageRequestOperation; @@ -86,11 +86,10 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"imageRequestOperat options:(AFImageRequestOptions)options block:(void (^)(UIImage *image, BOOL cacheUsed))block { - if (!url) { - // stop loading image - [self.imageRequestOperation cancel]; - self.imageRequestOperation = nil; + if (!url || [url isEqual:self.imageRequestOperation.request.URL]) { return; + } else { + [self cancelImageRequestOperation]; } NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLCacheStorageAllowed timeoutInterval:30.0]; @@ -125,4 +124,8 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"imageRequestOperat } } +- (void)cancelImageRequestOperation { + [self.imageRequestOperation cancel]; +} + @end