Я пытаюсь получить информацию о приложении с помощью API Apple, который дает мне JSON-файл, содержащий много объектов.xcode проверить, существует ли NSArray и содержит объекты?
Я попытался определить тип приложения (только универсальный/iPhone только/IPad), как этот
if(([[appDetails objectForKey:@"screenshotUrls"] count]>0) && ([[appDetails objectForKey:@"ipadScreenshotUrls"] count]>0))
{
cell.appDeviceLabel.text = @"Universal";
cell.appDeviceLabel.backgroundColor = [UIColor colorWithRed:0.012 green:0.467 blue:0.784 alpha:1];
}
else if(([[appDetails objectForKey:@"screenshotUrls"] count]==0) && ([[appDetails objectForKey:@"ipadScreenshotUrls"] count]>0))
{
cell.appDeviceLabel.text = @"iPad";
cell.appDeviceLabel.backgroundColor = [UIColor colorWithRed:0.941 green:0.58 blue:0.016 alpha:1];
}
else if(([[appDetails objectForKey:@"screenshotUrls"] count]>0) && ([[appDetails objectForKey:@"ipadScreenshotUrls"] count]==0))
{
cell.appDeviceLabel.text = @"iPhone";
cell.appDeviceLabel.backgroundColor = [UIColor colorWithRed:0.016 green:0.459 blue:0.129 alpha:1];
}
Примечание: screenshotUrls представляет собой массив, содержащий изображения для версии iPhone ipadScreenshotUrls является для Фотографии iPad.
Я использовал приведенный выше код в своем приложении, и Apple его принял, но я получаю отчеты о сбоях, показывающие проблему в этих строках.
Может быть, потому что я проверяю счет массива, который не найден? потому что, если приложение является iphone только для примера, массив для iPad-изображений не будет существовать. Любая идея, как я могу это решить?
Спасибо.
Да, как я сказал, например, если приложение «только для iPhone», изображения NSArray для Ipad не будут существовать. Итак, я думаю, что это точка нет? Поэтому, если я понимаю, что я должен протестировать следующим образом: if ([appDetails objectForKey: @ "screenshotUrls"]! = (Typecast) [NSNull null]) { // массив существует } – hafedh
Да, это правильно. Но такая ошибка возникает, когда JSON содержит «null» в качестве некоторого значения. Если ключ не существует, 'NSDictionary' просто вернет' nil' и это не вызовет сбоя. Вы должны сначала подтвердить, что это причина. Хотя проверка «NSNull» является хорошей практикой в целом при работе с JSON. – Sailesh
Откажитесь от вас в любом случае, только для моего кода, указанного выше, есть ли что-то неправильное, что может привести к сбою? даже если NSArray не существует, я могу написать array.count? Благодарю. – hafedh