我无法在Objective c使用SDWebImage 4.4.5版本下载图像。我尝试了以下内容,没有任何效果。
试试1:
[self.thumbnailImageView sd_setImageWithURL:[NSURL URLWithString:thumbnailURLString] completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
}];
试试2:
[self.thumbnailImageView sd_setImageWithURL:[NSURL URLWithString:thumbnailURLString] placeholderImage:nil options:SDWebImageRefreshCached completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) { if(image != nil){
self.thumbnailImageView.image = image;
} else {
NSLog(@"Photo Not Available, fetch");
[self.thumbnailImageView sd_setImageWithURL:[NSURL URLWithString:thumbnailURLString] placeholderImage:nil options:SDWebImageRefreshCached completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
if(image != nil) { NSLog(@"Lo Res Image Loaded by %ld from '%@'", (long)cacheType, imageURL);
self.thumbnailImageView.image = image;
} else {
self.thumbnailImageView.image = nil;
} }];
} }];
尝试3:
[[SDWebImageDownloader sharedDownloader] downloadImageWithURL:[NSURL URLWithString:thumbnailURLString] options:SDWebImageDownloaderUseNSURLCache progress:nil completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {
}];
尝试4:
SDWebImageManager *manager = [SDWebImageManager sharedManager];
[manager loadImageWithURL:[NSURL URLWithString:thumbnailURLString] options:SDWebImageDelayPlaceholder progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {
} completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {
}];
试试5:
SDWebImageDownloader *manager = [SDWebImageManager sharedManager].imageDownloader;
[manager setValue:@"application/vnd.learning.events.v1+json" forHTTPHeaderField:@"Accept"];
[manager setValue:@"en-US" forHTTPHeaderField:@"Accept-Language"];
[manager setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
//[manager setValue:savedEmail forHTTPHeaderField:@"Email"];
[manager setValue:savedToken forHTTPHeaderField:@"Authorization"];
[manager downloadImageWithURL:[NSURL URLWithString:thumbnailURLString] options:SDWebImageDownloaderHighPriority progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {
} completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished) {
self.thumbnailImageView.image = image;
}];
在上述所有情况下,收到以下错误:
错误域= NSURLErrorDomain代码= -999“已取消”UserInfo = {NSErrorFailingURLStringKey = https://thisisnotcorrecturl.net/api/BAImage?ActionFlagId=97&id=615,NSErrorFailingURLKey = https://thisisnotcorrecturl.net/api/BAImage?ActionFlagId=97&id=615,_NSURLErrorRelatedURLSessionTaskErrorKey =(“LocalDataTask <92586538-B07D-46FB-8694-3B29AA3F0CB4>。<7>”),_ NSURLErrorFailingURLSessionTaskErrorKey = LocalDataTask <92586538 -B07D-46FB-8694-3B29AA3F0CB4>。<7>,NSLocalizedDescription = canceled}
之前,我们使用过v3.5.4版本,能够使用以下代码下载图像。它运作良好。
[self.thumbnailImageView setImageWithURL:[NSURL URLWithString:thumbnailURLString]
placeholderImage:nil
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
if (image != nil){
self.thumbnailImageView.image = [self imageResizingToAspetRatio:image];
}
}];
如果有任何错误或任何建议,请告诉我。
更新1:尝试使用post man下载图像。请检查图像。在升级到SDWebImage v4.4.5之后,相同的图像URL正在SDWebImage v3.5.4上工作,它没有提供图像。
我缺少任何配置吗?安装了pod'SDWebImage / WebP',在构建设置 - >预处理器宏中添加了SD_WEBP = 1。
错误:错误域= SDWebImageErrorDomain代码= 0“下载的图像有0像素”UserInfo = {NSLocalizedDescription =下载的图像有0像素}
http://testingurl.net/api/Image?ActionFlagId=20&id=864
授权方式:电子邮箱:[email protected],令牌:A-BE3D-WER3-847F-ER6YG5678G
基本上,如果URL包含图像,SDWebImage从任何URL下载它们都没有问题。
但在您的情况下,您已尝试从JSON获取图像。您的服务器API返回一个JSON对象,其中包含base64String
的图像。当你得到JSON响应然后你需要从json获取base64String
然后从base64String
创建一个图像。
您可以使用此方法使用Objective C
将字符串解码为图像。
- (UIImage *)decodeBase64ToImage:(NSString *)strEncodeData {
NSData *data = [[NSData alloc]initWithBase64EncodedString:strEncodeData options:NSDataBase64DecodingIgnoreUnknownCharacters];
return [UIImage imageWithData:data];
}
首先,更新pod并尝试SDWebImage pod版本3.8.2。
第二件事是检查你的图片网址。因为我个人用这个pod版本测试图像下载并且下载功能正常。