希望简单地将解析图像url转换为字符串,以便我可以使用SDWebImage进行缓存等。
经过研究,我发现我可以通过在NSURL上调用absoluteString从url转换为string。我也试过这个:
NSURL *theUrl = [[obj objectForKey:@"image"] url];
NSString *finalUrl = [theUrl absoluteString];
[cell.carPhoto setImageWithURL:[NSURL URLWithString:finalUrl]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
但是我也遇到了同样的错误
NSString *finalUrl = [theUrl absoluteString];
有什么想法吗?顺便说一下,obj是一个PFObject
答案 0 :(得分:5)
错误消息告诉您,您有一个__NSCFString
的实例,并且您正在调用absoluteString
。 __NSCFString
是一种NSString
,因此情况只是您希望(由于某种原因)您拥有NSURL
,但实际上您拥有NSString
- 所以您不需要致电absoluteString
。
理解为什么你认为自己有NSURL
并且在这段代码中是否会有一个是很好的。输入应该是一致的,但如果没有,你可以检查类并决定如何获得字符串版本。
答案 1 :(得分:1)
您似乎正在尝试使用此行将NSString
转换为NSURL
:
NSURL *theUrl = [[obj objectForKey:@"image"] url];
但这不是您将NSString
转换为NSURL
的方式,因此您的NSString
并未根据需要更改为NSURL
。相反,似乎它仍然是NSString
,因此错误。
如果通过访问将NSString
的唯一目的转换回下一行的NSURL
,则无需将NSURL
转换为NSString
它的absoluteString
财产;但是,如果 实际上需要theURL
作为NSURL
,原因超出了您发布的代码(例如,如果您需要访问NSURL
在您的代码中稍后变量),请尝试将此字符串正确转换为网址:
NSURL *theUrl = [NSURL URLWithString:[obj objectForKey:@"image"]];