[__NSCFString 绝对字符串]:发送到实例的无法识别的选择器,尝试将 url 转换为字符串



希望简单地将解析图像网址转换为字符串,以便我可以使用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"]];

最新更新