From bf1012741cf7fe255cf97b89e14607f38947f777 Mon Sep 17 00:00:00 2001 From: Garrett Moon Date: Wed, 13 Apr 2016 10:09:38 -0700 Subject: [PATCH] Add error for empty images. (#188) --- Pod/Classes/PINRemoteImageManager.h | 2 ++ Pod/Classes/PINRemoteImageManager.m | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Pod/Classes/PINRemoteImageManager.h b/Pod/Classes/PINRemoteImageManager.h index b64d812..1b96f1b 100644 --- a/Pod/Classes/PINRemoteImageManager.h +++ b/Pod/Classes/PINRemoteImageManager.h @@ -35,6 +35,8 @@ typedef NS_ENUM(NSUInteger, PINRemoteImageManagerError) { PINRemoteImageManagerErrorFailedToProcessImage = 3, /** The image in the cache was invalid */ PINRemoteImageManagerErrorInvalidItemInCache = 4, + /** The image at the URL was empty */ + PINRemoteImageManagerErrorImageEmpty = 5, }; /** diff --git a/Pod/Classes/PINRemoteImageManager.m b/Pod/Classes/PINRemoteImageManager.m index 8674039..484dccb 100644 --- a/Pod/Classes/PINRemoteImageManager.m +++ b/Pod/Classes/PINRemoteImageManager.m @@ -802,18 +802,25 @@ static dispatch_once_t sharedDispatchToken; #if PINRemoteImageLogging if (error && error.code != NSURLErrorCancelled) { PINLog(@"Failed downloading image: %@ with error: %@", url, error); - } else if (error == nil && responseObject == nil) { + } else if (error == nil && response.expectedContentLength == 0) { PINLog(@"image is empty at URL: %@", url); } else { PINLog(@"Finished downloading image: %@", url); } #endif + if (error.code != NSURLErrorCancelled) { [strongSelf lock]; PINRemoteImageDownloadTask *task = [strongSelf.tasks objectForKey:key]; NSData *data = task.progressImage.data; [strongSelf unlock]; + if (error == nil && data == nil) { + error = [NSError errorWithDomain:PINRemoteImageManagerErrorDomain + code:PINRemoteImageManagerErrorImageEmpty + userInfo:nil]; + } + completion(data, error); } }];