2016-11-24 2 views
0

У меня есть NSMutableDictionary, который хранит данные, полученные из базы данных. Некоторые ключи внутри NSMutableDictionary имеют нулевые значения, как показано ниже.Проверка NSDictionary для «<null>» значение в ios10

Я хотел проверить нулевые значения. Я делаю, как показано ниже:

UserMobileNo = "<null>"; 
UserAccNo = "<null>"; 
if(!([dicUserdata valueForKey:@"UserMobileNo"] == [NSNull null])) 
     //Saved result 

но выше код, похоже, не отлично проверяет нулевые значения. Каков идеальный способ проверки нулевых значений внутри словаря?

+0

Возможно, это поможет: http://nshipster.com/nil/ – LoVo

+0

Вы не можете хранить null/nil в NSDictionary; что содержит ваш словарь? Буквально строка ""? – Paulw11

+0

Да, поскольку данные поступают из базы данных ..... – user2813740

ответ

2

Есть много способов, чтобы проверить.

Использование nil:

if([dicUserdata objectForKey:@"UserMobileNo"] == nil){ 
    // found null 
} 

Используя метод: isEqual

if([[dicUserdata objectForKey:@"UserMobileNo"] isEqual:[NSNull null]]){ 
    // found null 
} 

IsEqual: возвращает логическое значение, которое указывает, являются ли получатель и данный объект равен.

Использование == оператора:

if[[dicUserdata objectForKey:@"UserMobileNo"] == [NSNull null]]){ 
    // found null 
} 

Использование isKindOfClass метод:

if[[dicUserdata objectForKey:@"UserMobileNo"] isKindOfClass:[NSNull null]]){ 
    // found null 
} 

isKindOfClass: Возвращает логическое значение, указывающее, является ли получатель является экземпляром данного класса или экземпляр любого класса, который наследует от этого класса.

+0

благодарит за помощью. – user2813740

+0

приветствуется приятель .. – vaibhav

0

вам нужно проверить, как показано ниже:

if ([[dicUserdata objectForKey:@"UserMobileNo"]isKindOfClass:[NSNull class]]) { 

        } 
1
if (![[dicUserdata valueForKey:@"UserMobileNo"]isKindOfClass:[NSNull class]]) 
{ 
    //Not Null 
} else { 
    //Null 
} 
0

Используйте эти условия:

if(!([[dicUserdata valueForKey:@"UserMobileNo"] isKindOfClass:[NSNull class]])) { 

} 

or 

if([dictUserData[@"UserMobileNo"] isKindOfClass:[NSString class]]) { 
    //execute your condition 
} 
+0

Ваш синтаксис немного, вы не должны использовать синтаксис точек для методов. Также 'isKindOfClass' ожидает' class', и вы передаете объект. Используйте '[NSNull class]' – rckoenes

+0

oh..thanks для ошибки ..... Я показал вам быстрый и объективный c mix ... wait m update it –

0

Вы интерпретировали если условие в неправильном

можно использовать

if ([dictResponse objectForKey:@"UserMobileNo"] != [NSNull null]) { 
    //handle your code 
} 

или

if (![[dictResponse objectForKey:@"UserMobileNo"]isKindOfClass:[NSNull class]]) { 
     //handle your code 
} 
0

Попробуйте следующий код:

if ([[dicUserdata objectForKey:@"UserMobileNo"] isKindOfClass:[NSDictionary class]]) { 
    // found null 
}else{ 
    // your code 
} 
+0

Вопрос не в том, чтобы проверить словарь, чтобы проверить значение null. уже имеет словарь и разбирает его –

0

Правильный способ сделать это, то есть обеспечить значение не nil и не NSNull является:

if (dictionary[key] && dictionary[key] != [NSNull null]) { 
    // not nil or NSNull 
} 

Дополнительные проверки не нужны.