尝试显示标签时出现[NSNull rangeOfCharacterFromSet:]:
异常。错误读取
'NSInvalidArgumentException',原因:'-[NSNull长度]:
下面是我的代码。
UILabel* spousename = [[UILabel alloc] initWithFrame:CGRectMake(10,line, 300,20)];
[spousename setText:[_thisburial objectForKey:@"Spouse"]];
我尝试使用以下代码测试空字符,但未捕获到该错误。尝试执行addSuview指令时,它炸毁了。
if(![spousename isEqual:nil])
{
[self.view addSubview:spousename];
}
因此,如何测试标签中的
NSNull
,以防止出现此[NSNull rangeOfCharacterFromSet:]:
错误消息? 最佳答案
您的数据实际上没有“ spouse”的实际值,这通过将NSNull
实例存储为该值来表明。您需要检查一下。
这行:
[spousename setText:[_thisburial objectForKey:@"Spouse"]];
应该更新以检查该值。像这样:
id spouse = _thisburial[@"Spouse"];
if ([spouse isKindOfClass:[NSString class]]) {
spousename.text = spouse;
} else {
// The "spouse" value wasn't set or it's not a string
spousename.text = @""; // Set to whatever you want here
}