我正在开发一个应用程序,该应用程序返回用户在tableView中搜索的一些JSON数据。有时会有一个空键返回,并且如果选择是choosin,它似乎使我的应用程序崩溃。我查找了其他解决方案,但是无论我如何设置“if”检查,它仍然崩溃。
第一个奇怪,它可以工作,但是在显示数据的文本视图中,显示的是“{}”,而不是“Not Available ...”。为什么?
if ([gameDetails objectForKey:@"description"] !=nil) {
gameDescription.text = [NSString stringWithFormat:@"%@", [gameDetails objectForKey:@"description"]];
}
else
{
gameDescription.text = [NSString stringWithFormat:@"Not Available..."];
}
不管我如何设置,下一个都会崩溃。
if ([gameDetails objectForKey:@"box_front"] != nil) {
NSURL *coverImage = [NSURL URLWithString:[gameDetails objectForKey:@"box_front"]];
NSData *imageLink = [NSData dataWithContentsOfURL:coverImage];
coverArt.image = [UIImage imageWithData:imageLink];
}
else
{
NSLog(@"No Photo");
}
有人可以告诉我为什么这些原因导致我的应用程序继续崩溃吗?让我知道是否需要更多信息。
最佳答案
NSURL *coverImage = [NSURL URLWithString:[gameDetails objectForKey:@"box_front"]];
//您必须检查coverImage是否为nil,然后只需要执行以下操作即可。否则写一些有关零的信息。
NSData *imageLink = [NSData dataWithContentsOfURL:coverImage];
coverArt.image = [UIImage imageWithData:imageLink];
//要检查nil或null,可以使用以下代码。
if([[itemDataDict valueForKey:@"ItemNo"] isKindOfClass:[NSString class]])
{
if([[itemDataDict valueForKey:@"ItemNo"] isEqualToString:@""] || [[itemDataDict valueForKey:@"ItemNo"] isEqualToString:@"<null>"])
{
txtItemNo.text = @"";
}
else
{
txtItemNo.text = [NSString stringWithFormat:@"%@",[itemDataDict valueForKey:@"ItemNo"]];
}
}
else
{
txtItemNo.text = @"";
}
让我知道您是否需要更多信息。