希望简单地将解析图像网址转换为字符串,以便我可以使用SDWebImage进行缓存等。
经过研究,我发现我可以通过在NSURL上调用absoluteString来从url转换为字符串。我也试过这个:
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
告诉您您有一个 __NSCFString
的实例,并且您正在对其调用absoluteString
。 __NSCFString
是一种NSString
,所以情况很简单,你期望(出于某种原因(你有NSURL
,但你实际上有一个NSString
——所以你不需要打电话给absoluteString
。
最好理解为什么你认为你有一个NSURL
,以及你是否会在这段代码中有一个。输入确实应该是一致的,但如果不是,您可以检查类并决定如何获取字符串版本。
看起来您正在尝试使用以下行将NSString
转换为NSURL
:
NSURL *theUrl = [[obj objectForKey:@"image"] url];
但这不是您将NSString
转换为NSURL
的方式,因此您的NSString
不会像您希望的那样更改为NSURL
。相反,它似乎仍然是一个NSString
,因此错误。
如果该NSURL
的唯一目的是通过访问其absoluteString
属性将NSString
转换为下一行的NSString
,则无需将该转换为NSURL
;但是,如果您确实需要theURL
成为NSURL
,原因超出了您发布的代码(例如, 如果需要稍后在代码中访问 NSURL
变量(,请尝试以下操作以将字符串正确转换为 URL:
NSURL *theUrl = [NSURL URLWithString:[obj objectForKey:@"image"]];