尝试显示标签时出现[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
}

08-18 03:00