SDWebImage 没有从 NSDictionary 加载图像
SDWebImage is not loading images from NSDictionary
我有一个 UITableView,我正在使用以下键从 RSS 文件加载一些文章:标题、url 和图像 url。我正在尝试使用 SDWebImage 库在 UITableViewCell 中显示图像,当我 "load" 通过从 RSS 下载的字典显示图像时,图像未加载。图像的 url 虽然已成功加载并在加载前打印。但是,当我复制打印的 url 并将其粘贴到另一个尝试加载 url 的字符串时,它起作用了。下面是我的代码。
NSString *urlofimage = [[feeds objectAtIndex:indexPath.row] objectForKey: @"image"];
NSLog(@"%@", urlofimage);
NSString *urlofimage1 = @"https://www.radioevros.gr/wp-content/uploads/2017/05/1495542572-74c82f60669c9db27cad113d22379c72.jpg";
[cell.imageview sd_setImageWithURL:[NSURL URLWithString:urlofimage] placeholderImage:[UIImage imageNamed:@"radio.png"]
options:SDWebImageRefreshCached];
因此,我的代码似乎并没有错,因为我之前使用的是相同的代码并且它可以正常工作。在上面的代码中,urlofimage1 实际上是 urlofimage 打印的 url。如果我这样做:
[cell.imageview sd_setImageWithURL:[NSURL URLWithString:urlofimage1] placeholderImage:[UIImage imageNamed:@"radio.png"]
options:SDWebImageRefreshCached];
正在工作,但如果我这样做就不行。
[cell.imageview sd_setImageWithURL:[NSURL URLWithString:urlofimage] placeholderImage:[UIImage imageNamed:@"radio.png"]
options:SDWebImageRefreshCached];
这是在里面加载的:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
有什么想法吗?谢谢。
我怀疑您的字典中有一些无效字符,例如末尾的 space 或类似的难以识别的字符。
首先尝试对收到的字符串进行编码,然后再创建 NSURL
实例。
NSString *urlofimage = @"https://www.radioevros.gr/wp-content/uploads/2017/05/1495542572-74c82f60669c9db27cad113d22379c72.jpg ";
NSCharacterSet *set = [NSCharacterSet URLQueryAllowedCharacterSet];
NSString *endcodedString = [urlofimage stringByAddingPercentEncodingWithAllowedCharacters:set];
NSLog(@"%@", [NSURL URLWithString:endcodedString]);
编辑:
编码突出显示,URL 末尾有无效字符。让我们用下面的代码摆脱它们:
NSString * urlofimage = @"https://www.radioevros.gr/wp-content/uploads/2017/05/1495542572-74c82f60669c9db27cad113d22379c72.jpg ";
NSString *trimmedString = [urlofimage stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@", [NSURL URLWithString:trimmedString]);
我有一个 UITableView,我正在使用以下键从 RSS 文件加载一些文章:标题、url 和图像 url。我正在尝试使用 SDWebImage 库在 UITableViewCell 中显示图像,当我 "load" 通过从 RSS 下载的字典显示图像时,图像未加载。图像的 url 虽然已成功加载并在加载前打印。但是,当我复制打印的 url 并将其粘贴到另一个尝试加载 url 的字符串时,它起作用了。下面是我的代码。
NSString *urlofimage = [[feeds objectAtIndex:indexPath.row] objectForKey: @"image"];
NSLog(@"%@", urlofimage);
NSString *urlofimage1 = @"https://www.radioevros.gr/wp-content/uploads/2017/05/1495542572-74c82f60669c9db27cad113d22379c72.jpg";
[cell.imageview sd_setImageWithURL:[NSURL URLWithString:urlofimage] placeholderImage:[UIImage imageNamed:@"radio.png"]
options:SDWebImageRefreshCached];
因此,我的代码似乎并没有错,因为我之前使用的是相同的代码并且它可以正常工作。在上面的代码中,urlofimage1 实际上是 urlofimage 打印的 url。如果我这样做:
[cell.imageview sd_setImageWithURL:[NSURL URLWithString:urlofimage1] placeholderImage:[UIImage imageNamed:@"radio.png"]
options:SDWebImageRefreshCached];
正在工作,但如果我这样做就不行。
[cell.imageview sd_setImageWithURL:[NSURL URLWithString:urlofimage] placeholderImage:[UIImage imageNamed:@"radio.png"]
options:SDWebImageRefreshCached];
这是在里面加载的:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
有什么想法吗?谢谢。
我怀疑您的字典中有一些无效字符,例如末尾的 space 或类似的难以识别的字符。
首先尝试对收到的字符串进行编码,然后再创建 NSURL
实例。
NSString *urlofimage = @"https://www.radioevros.gr/wp-content/uploads/2017/05/1495542572-74c82f60669c9db27cad113d22379c72.jpg ";
NSCharacterSet *set = [NSCharacterSet URLQueryAllowedCharacterSet];
NSString *endcodedString = [urlofimage stringByAddingPercentEncodingWithAllowedCharacters:set];
NSLog(@"%@", [NSURL URLWithString:endcodedString]);
编辑:
编码突出显示,URL 末尾有无效字符。让我们用下面的代码摆脱它们:
NSString * urlofimage = @"https://www.radioevros.gr/wp-content/uploads/2017/05/1495542572-74c82f60669c9db27cad113d22379c72.jpg ";
NSString *trimmedString = [urlofimage stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@", [NSURL URLWithString:trimmedString]);