From e6ceb941dddf3f17d8ed3d340704e9fe6fb1d2d5 Mon Sep 17 00:00:00 2001 From: Patrick Hughes Date: Fri, 31 Aug 2012 16:21:19 -0400 Subject: [PATCH] Fixed a subtle ordering bug. --- UIImageView+ZSAssetManagerAdditions.m | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/UIImageView+ZSAssetManagerAdditions.m b/UIImageView+ZSAssetManagerAdditions.m index 0284b2b..37d3fd1 100644 --- a/UIImageView+ZSAssetManagerAdditions.m +++ b/UIImageView+ZSAssetManagerAdditions.m @@ -16,14 +16,14 @@ @implementation UIImageView (ZSAssetManagerAdditions) - (void)setImageWithURL:(NSURL *)url { + objc_setAssociatedObject(self, assetManagerImageURLKey, url, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + self.image = nil; + if (!url) { DLog(@"nil url passed"); - objc_removeAssociatedObjects(self); return; } - objc_setAssociatedObject(self, assetManagerImageURLKey, url, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - __weak UIImageView *blockSelf = self; [[ZSAssetManager sharedAssetManager] fetchImageForURL:url withCompletionBlock:^(NSURL *fetchedUrl, UIImage *image) { @@ -37,8 +37,13 @@ - (void)setImageWithURL:(NSURL *)url - (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage { - self.image = placeholderImage; + // Request the image from the asset manager. [self setImageWithURL:url]; + + // If the asset manager has it, don't set the placeholder. + if (!self.image) { + self.image = placeholderImage; + } } @end