[NSNull length]:无法识别的选择器发送到objective-c中的实例

T. *_*ael 0 objective-c ios

我从服务获取一些JSON数据,一个属性是表示图像URL的字符串,似乎返回的是NULL,我做检查但是XCode在我的if语句之前中断并生成异常.这是我的代码如下:

- (void)configureCellForAlbum:(Album *)album {

    self.albumTitle.text = album.albumTitle;
    self.artisteName.text = album.artisteName;
    NSURL *imageUrl = [NSURL URLWithString:album.thumbnail];
    if (imageUrl == nil) {
        self.albumThumbnail.image = [UIImage imageNamed:@"music_record"];
    }
    else {
        self.albumThumbnail.imageURL = imageUrl;
    }
}
Run Code Online (Sandbox Code Playgroud)

例外是

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [NSNull length]:发送到实例的无法识别的选择器.

我如何进行检查,以便如果值为null,则使用本地图像但如果不为null则使用返回的图像字符串url?

Tom*_*mmy 6

nil 如果没有找到具有该键的对象,则由字典返回.

NSNullJSON解析器插入一个实例,以指示存在空值键.

你需要检查你得到的对象是否真的是一个字符串.你没有抓住有一个对象的情况,但它不是一个字符串.

例如

if ([albm.thumbnail isKindOfClass:[NSString class]])
    ... a string-form URL is present ...
else
    .... something else, or nothing, was found; use a fallback ...
Run Code Online (Sandbox Code Playgroud)