【发布时间】:2014-03-26 04:54:26
【问题描述】:
我正在开发一个应用程序,该应用程序返回用户在 tableView 中搜索的一些 JSON 数据。有时会返回一个空键,如果选择是 choosin,它似乎会使我的应用程序崩溃。我查找了其他解决方案,但无论我如何设置“if”检查,它仍然崩溃。
第一个很奇怪,它可以工作,但是在显示数据的文本视图中显示的是“{}”而不是“不可用...”为什么?
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");
}
谁能告诉我为什么这些会导致我的应用程序不断崩溃?如果我需要更多信息,请告诉我。
【问题讨论】:
-
在第一种情况下,
description键的字典为空。在第二种情况下,您没有提及错误,但很可能您得到了一个NSNull对象。 -
可以在这里打印崩溃日志吗?
-
对于第 2 点第 1 点,您必须对 url 进行编码,然后从 URL 获取数据。并且您必须检查是否获取数据,然后仅在 imageview 中设置图像,例如 if(imageLink)coverArt.image = [UIImage imageWithData:imageLink];
-
Rmaddy:既然我得到了一个描述键的空字典,为什么要放 {} 而不是我想要的文本?
-
因为
NSDictionary description在空字典上的输出将是{}。顺便说一句 - 如果您想回复特定的人,请在他们的用户名前加上@符号。
标签: ios objective-c json parsing