0

我已经设置了 MySQL 数据库并将 JSON 解析为我的 XCode 项目。但是,我收到THREAD 1: signal SIGABRT下面第四行的错误。我认为这是由于数据库中的“位置”变量之一的空值。这是原因吗?如果是这样,我怎样才能让它忽略该null值并将标签留空?在此先感谢您的时间。

UILabel *event = (UILabel *)[cell viewWithTag:102];
event.text = [dict objectForKey:@"event"];

UILabel *location = (UILabel *)[cell viewWithTag:103];
location.text = [dict objectForKey:@"location"];
4

1 回答 1

0

我觉得空值不太可能是问题(因为你可以aniltext属性UILabel来删除文本)。我怀疑问题是:

  1. 我想知道是否[dict objectForKey:@"location"]可以返回字符串以外的其他内容,例如NSDictionary? 我会要么NSLog这个值(或者放一个断点并在那里检查这个值)并确认。或者NSAssert像我下面这样。

  2. 不太可能,但我想知道带有标签的子视图103是否真的是一个UILabel?我可能会检查location调试器中的对象以确保。但是如果带有标签的视图103不是 a UILabel,那么你可能会得到一个错误。

因此,也许是这样的:

UILabel *location = (UILabel *)[cell viewWithTag:103];
NSAssert([location isKindOfClass:[UILabel class]], @"%s: view with tag 103 is not UILabel: %@", __FUNCTION__, location);
NSString *locationString = [dict objectForKey:@"location"];
NSAssert(locationString == nil || [locationString isKindOfClass:[NSString class]], @"locationString is not nil but not string either: locationString = %@", locationString);
location.text = locationString;
于 2013-08-04T17:26:14.987 回答