带有JSON响应的NSNull isEqualToString问题

ORS*_*ios 1 cocoa-touch objective-c ios

我收到以下错误

-[NSNull isEqualToString:]: unrecognized selector sent to instance 0x3c168090
Run Code Online (Sandbox Code Playgroud)

在这行代码上

cell.offerTitle.text = [voucherData objectForKey:@"offer_title"];
Run Code Online (Sandbox Code Playgroud)

有人可以帮我纠正这个问题吗?

谢谢奥利弗

pau*_*kow 6

voucherDataNSDictionary吗?

NSNull你的字典中可能有一个,当字典试图找到对象时offer_title,它就会遇到麻烦.

另一种可能性是[voucherData objectForKey:@"offer_title"]返回[NSNull null],当你尝试传递而不是字符串时,标签就是barfing.

尝试设置断点objc_exception_throw并读取堆栈跟踪 - 这将使您更好地了解正在发生的事情.

添加:

id value = [voucherData objectForKey:@"offer_title"];
if ([value isKindOfClass:[NSNull class]])
    cell.offerTitle.text = @"";
else
    call.offerTitle.text = value;
Run Code Online (Sandbox Code Playgroud)

要么

id value = [voucherData objectForKey:@"offer_title"];
cell.offerTitle.text = [value isKindOfClass:[NSNull class]] ? @"" : value;
Run Code Online (Sandbox Code Playgroud)