Bar*_*ley 2 null xcode objective-c
我有一个从JSON查询字符串返回的NULL对象,我不知道如何在If语句中检查它.我的语法如下,但我似乎仍然无法为NULL类捕获(即,如果没有返回任何内容,那么就不能设置文本变量,因此它必须是一个NULL类?),无论如何,我需要检查一下@"BillingStreet"在它的东西,如果不避免处理它(否则应用程序崩溃,因为它试图没什么设置的一个文本值fields中VC):
- (void) tableView: (UITableView *)itemTableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath{
NSDictionary *obj = [self.dataCustomerDetailRows objectAtIndex:indexPath.row];
NSString *text = [obj objectForKey:@"BillingStreet"] == nil ? @"0" : [obj objectForKey:@"BillingStreet"];
NSLog(@"%@",text);
if (text.class == NULL){
} else {
NSLog(@"no street");
self.labelCustomerAddress.text = [obj objectForKey:@"BillingStreet"];
}
}
Run Code Online (Sandbox Code Playgroud)
JSON"null"值将转换为[NSNull null]您可以检查的值
if (text == [NSNull null]) ...
Run Code Online (Sandbox Code Playgroud)
因为它是一个单身人士.
或者,您可以检查对象是否包含预期类型,即字符串:
NSString *text = [obj objectForKey:@"BillingStreet"];
if ([text isKindOfClass:[NSString class]]) {
self.labelCustomerAddress.text = text;
} else {
self.labelCustomerAddress.text = @"no street";
}
Run Code Online (Sandbox Code Playgroud)
在服务器发送错误数据(例如数字或数组而不是字符串)的情况下,这更加强大.
小智 6
text == nil ? @"0" : text
要么
text ? text : @"0"
但是如果从JSON获得它,那么你可能会得到NSNull类的实例.在这种情况下,你应该检查
text && ![text isKindOfClass:[NSNull class]] ? text : @"0"