Merge pull request #1632 from Adlai-Holler/ResolveMultiplexImageNodeLoadLoop

[ASMultiplexImageNode] Do Not Request Already-Loaded Images From Data Source
This commit is contained in:
appleguy
2016-05-09 18:21:01 -07:00

View File

@@ -463,8 +463,12 @@ typedef void(^ASMultiplexImageLoadCompletionBlock)(UIImage *image, id imageIdent
}
// Grab the best available image from the data source.
UIImage *existingImage = self.image;
for (id imageIdentifier in _imageIdentifiers) {
UIImage *image = [_dataSource multiplexImageNode:self imageForImageIdentifier:imageIdentifier];
// If this image is already loaded, don't request it from the data source again because
// the data source may generate a new instance of UIImage that returns NO for isEqual:
// and we'll end up in an infinite loading loop.
UIImage *image = ASObjectIsEqual(imageIdentifier, _loadedImageIdentifier) ? existingImage : [_dataSource multiplexImageNode:self imageForImageIdentifier:imageIdentifier];
if (image) {
if (imageIdentifierOut) {
*imageIdentifierOut = imageIdentifier;