diff --git a/SDWebImage/SDWebImageManager.m b/SDWebImage/SDWebImageManager.m index 7e24137..8940d65 100644 --- a/SDWebImage/SDWebImageManager.m +++ b/SDWebImage/SDWebImageManager.m @@ -68,6 +68,9 @@ - (id)downloadWithURL:(NSURL *)url options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletedWithFinishedBlock)completedBlock { + // Invoking this method without a completedBlock is pointless + NSParameterAssert(completedBlock); + // Very common mistake is to send the URL using NSString object instead of NSURL. For some strange reason, XCode won't // throw any warning for this type mismatch. Here we failsafe this error by allowing URLs to be passed as NSString. if ([url isKindOfClass:NSString.class]) @@ -90,16 +93,13 @@ isFailedUrl = [self.failedURLs containsObject:url]; } - if (!url || !completedBlock || (!(options & SDWebImageRetryFailed) && isFailedUrl)) + if (!url || (!(options & SDWebImageRetryFailed) && isFailedUrl)) { - if (completedBlock) + dispatch_main_sync_safe(^ { - dispatch_main_sync_safe(^ - { NSError *error = [NSError errorWithDomain:NSURLErrorDomain code:NSURLErrorFileDoesNotExist userInfo:nil]; completedBlock(nil, error, SDImageCacheTypeNone, YES); - }); - } + }); return operation; }