Fixing optimization to not re-initiate duplicated calls to a UIImageView, by adding missing check to see if the last operation was cancelled
This commit is contained in:
parent
6832cd0e16
commit
3b81cd32a7
1 changed files with 11 additions and 9 deletions
|
|
@ -105,7 +105,7 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"_af_imageRequestOp
|
||||||
placeholderImage:(UIImage *)placeholderImage
|
placeholderImage:(UIImage *)placeholderImage
|
||||||
success:(void (^)(UIImage *image, BOOL cacheUsed))success
|
success:(void (^)(UIImage *image, BOOL cacheUsed))success
|
||||||
{
|
{
|
||||||
if (!url || [url isEqual:self.imageRequestOperation.request.URL]) {
|
if (!url || (![self.imageRequestOperation isCancelled] && [url isEqual:self.imageRequestOperation.request.URL])) {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
[self cancelImageRequestOperation];
|
[self cancelImageRequestOperation];
|
||||||
|
|
@ -138,15 +138,17 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"_af_imageRequestOp
|
||||||
return image;
|
return image;
|
||||||
} cacheName:cacheName success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
|
} cacheName:cacheName success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
|
||||||
if (self.imageRequestOperation && ![self.imageRequestOperation isCancelled]) {
|
if (self.imageRequestOperation && ![self.imageRequestOperation isCancelled]) {
|
||||||
if (success) {
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
success(image, NO);
|
if (success) {
|
||||||
}
|
success(image, NO);
|
||||||
|
}
|
||||||
|
|
||||||
if ([[request URL] isEqual:[[self.imageRequestOperation request] URL]]) {
|
if ([[request URL] isEqual:[[self.imageRequestOperation request] URL]]) {
|
||||||
self.image = image;
|
self.image = image;
|
||||||
} else {
|
} else {
|
||||||
self.image = placeholderImage;
|
self.image = placeholderImage;
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
|
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
|
||||||
self.imageRequestOperation = nil;
|
self.imageRequestOperation = nil;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue