我有一个UITableView,我正在从RSS文件加载一些文章,其中包含键:title,url和image url。我正在尝试使用SDWebImage库在UITableViewCell中显示图像,当我通过从RSS下载的字典“加载”图像时,图像未加载。尽管图像的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 {
有什么想法吗?谢谢。
答案 0 :(得分:2)
我怀疑你的字典中有一些无效字符,比如最后的空格或类似的东西很难发现。
首先尝试对收到的字符串进行编码,然后再创建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]);