所以我使用了 JSON 序列化并一直在使用
NSString *referencestr = [[notificationarray objectAtIndex:indexPath.row] valueForKey:@"Reference"];
它正在获取数据并将其显示在表视图上。但是,当数据为 NULL 时,我的表崩溃并且我的应用关闭。我应该如何解决这个问题或将 NULL 读取为 nil。
我假设您的notificationarray
是通过调用[NSJSONSerialization JSONObjectWithData:options:encoding:]
创建的。 该调用将很乐意为您提供一个数组,其中包含NSNull
实例(如果 JSON 中有null
个对象正在解析)。
客户端代码应该对不合作的数据提供程序具有健壮性。 您应该检查[notificationarray objectAtIndex:indexPath.row]
的类别。 如果您希望该对象是NSDictionary
那么您可以像这样检查:
id theObject = [notificationarray objectAtIndex:indexPath.row];
if ([theObject isKindOfClass:[NSDictionary class]]) {
// Work under the assumption that theObject is a dictionary.
} else {
// Log an error, bail out, etc. Whatever's the appropriate
// response for malformed data.
}
在这种情况下,您可以检查该值是否为空。为此,请检查一下。
if ([[notificationarray objectAtIndex:indexPath.row]valueForKey:@"Reference"]!=[NSNull null]) {
lblDescription.text=[[notificationarray objectAtIndex:indexPath.row]valueForKey:@"Reference"];
}
else
{
//any value you wants to display in label
}