NSDictionary 检查 ios10 中的“<null>”值
NSDictionary checking for "<null>" value in ios10
我有 NSMutableDictionary
存储从数据库编译的数据。
NSMutableDictionary
中的某些键具有空值,如下所示。
我想检查空值。我正在做如下:
UserMobileNo = "<null>";
UserAccNo = "<null>";
if(!([dicUserdata valueForKey:@"UserMobileNo"] == [NSNull null]))
//Saved result
但上面的代码似乎并没有完美地检查空值。
检查字典中空值的完美方法是什么?
您需要检查如下:
if ([[dicUserdata objectForKey:@"UserMobileNo"]isKindOfClass:[NSNull class]]) {
}
if (![[dicUserdata valueForKey:@"UserMobileNo"]isKindOfClass:[NSNull class]])
{
//Not Null
} else {
//Null
}
使用这些条件:
if(!([[dicUserdata valueForKey:@"UserMobileNo"] isKindOfClass:[NSNull class]])) {
}
or
if([dictUserData[@"UserMobileNo"] isKindOfClass:[NSString class]]) {
//execute your condition
}
您对 if 条件的理解有误
可以使用
if ([dictResponse objectForKey:@"UserMobileNo"] != [NSNull null]) {
//handle your code
}
或
if (![[dictResponse objectForKey:@"UserMobileNo"]isKindOfClass:[NSNull class]]) {
//handle your code
}
试试下面的代码:
if ([[dicUserdata objectForKey:@"UserMobileNo"] isKindOfClass:[NSDictionary class]]) {
// found null
}else{
// your code
}
检查的方法有很多种。
使用nil
:
if([dicUserdata objectForKey:@"UserMobileNo"] == nil){
// found null
}
使用isEqual
方法:
if([[dicUserdata objectForKey:@"UserMobileNo"] isEqual:[NSNull null]]){
// found null
}
isEqual:Returns 一个布尔值,指示接收者和给定对象是否相等。
使用==
运算符:
if[[dicUserdata objectForKey:@"UserMobileNo"] == [NSNull null]]){
// found null
}
使用isKindOfClass
方法:
if[[dicUserdata objectForKey:@"UserMobileNo"] isKindOfClass:[NSNull null]]){
// found null
}
isKindOfClass:Returns 一个布尔值,指示接收者是给定 class 的实例还是从 class 继承的任何 class 的实例=44=].
这样做的正确方法,即确保值不是 nil
而不是 NSNull
是:
if (dictionary[key] && dictionary[key] != [NSNull null]) {
// not nil or NSNull
}
不需要额外检查。
我有 NSMutableDictionary
存储从数据库编译的数据。
NSMutableDictionary
中的某些键具有空值,如下所示。
我想检查空值。我正在做如下:
UserMobileNo = "<null>";
UserAccNo = "<null>";
if(!([dicUserdata valueForKey:@"UserMobileNo"] == [NSNull null]))
//Saved result
但上面的代码似乎并没有完美地检查空值。 检查字典中空值的完美方法是什么?
您需要检查如下:
if ([[dicUserdata objectForKey:@"UserMobileNo"]isKindOfClass:[NSNull class]]) {
}
if (![[dicUserdata valueForKey:@"UserMobileNo"]isKindOfClass:[NSNull class]])
{
//Not Null
} else {
//Null
}
使用这些条件:
if(!([[dicUserdata valueForKey:@"UserMobileNo"] isKindOfClass:[NSNull class]])) {
}
or
if([dictUserData[@"UserMobileNo"] isKindOfClass:[NSString class]]) {
//execute your condition
}
您对 if 条件的理解有误
可以使用
if ([dictResponse objectForKey:@"UserMobileNo"] != [NSNull null]) {
//handle your code
}
或
if (![[dictResponse objectForKey:@"UserMobileNo"]isKindOfClass:[NSNull class]]) {
//handle your code
}
试试下面的代码:
if ([[dicUserdata objectForKey:@"UserMobileNo"] isKindOfClass:[NSDictionary class]]) {
// found null
}else{
// your code
}
检查的方法有很多种。
使用nil
:
if([dicUserdata objectForKey:@"UserMobileNo"] == nil){
// found null
}
使用isEqual
方法:
if([[dicUserdata objectForKey:@"UserMobileNo"] isEqual:[NSNull null]]){
// found null
}
isEqual:Returns 一个布尔值,指示接收者和给定对象是否相等。
使用==
运算符:
if[[dicUserdata objectForKey:@"UserMobileNo"] == [NSNull null]]){
// found null
}
使用isKindOfClass
方法:
if[[dicUserdata objectForKey:@"UserMobileNo"] isKindOfClass:[NSNull null]]){
// found null
}
isKindOfClass:Returns 一个布尔值,指示接收者是给定 class 的实例还是从 class 继承的任何 class 的实例=44=].
这样做的正确方法,即确保值不是 nil
而不是 NSNull
是:
if (dictionary[key] && dictionary[key] != [NSNull null]) {
// not nil or NSNull
}
不需要额外检查。