Как проверить ошибки для объекта `null` с помощью интерпретатора`json` в iOS
обновление: я думаю, что ошибка происходит из-за отсутствующего ключа в фиде данных, а не ключа с нулевым значением.
Я столкнулся с null
возражать json
интерпретатор и думал, что этот код будет проверять ошибки и избежать сбоев. Это не работает, хотя. Мне нужно проверить, чтобы избежать этого сообщения об ошибке и сбоя:
imageurl string is <null>
2013-09-09 12:35:26.928 1000 [1539:690b] -[NSNull length]: unrecognized selector sent to instance
if (![imageUrlString isKindOfClass:[NSNull class]])
{
imageUrlString = [userImageArray objectAtIndex:indexPath.row];
} else {
cell.thumbnailImageView.image = [UIImage imageNamed:@"rest.png"];
}
fyi - работает, если строка изображения существует, и происходит сбой только при обнаружении нулевого объекта.
вывод из nslog:
когда встречается нулевой объект: imageurl string is (null)
когда это работает: imageurl string is http://******.com/uploads/users/35/profile.jpeg
Спасибо за помощь
2 ответа
Это должно сделать свое дело. Не думайте, что ваша проверка на NSNull не является правильной техникой для проверки на ноль. Попробуйте одну из проверок в первом if
заявление:
/* Either of these checks in the if statement should work */
if ((NSNull *)imageUrlString != [NSNull null] || [@"<null>" isEqualToString:imageUrlString]) {
imageUrlString = [userImageArray objectAtIndex:indexPath.row];
} else {
cell.thumbnailImageView.image = [UIImage imageNamed:@"rest.png"];
}
Это сбой, потому что NSNull не "своего рода класс".
Вам нужно проверить, является ли сам объект нулевым, и, вероятно, хорошей идеей будет проверить, что он тоже не пустой:
if (imageUrlString!=[NSNull null] && [imageUrlString length]>0){
imageUrlString = [userImageArray objectAtIndex:indexPath.row];
} else {
cell.thumbnailImageView.image = [UIImage imageNamed:@"rest.png"];
}