Условие проверки значения NOT <null>для NSString в Задаче C - PullRequest
2 голосов
/ 05 января 2012

Код:

NSString *tempPhone = [NSString stringWithFormat:@"%@", [personDict objectForKey:kPhoneKey]];
NSLog(@"NSString *tempPhone = %@",tempPhone);

Выход:

NSString *tempPhone = <null>

Теперь я хочу добавить условие if, для not null ; Я попробовал следующее:

if (tempEmail != NULL)
if (tempPhone != Nil)
if (tempPhone != nil)
if (![tempPhone compare:@"<null>"])
if (tempPhone != (NSString*)[NSNull null])

Я тоже проверил это сообщение.

Никто из них не работает на меня. Куда я иду не так ?? 1020 *

Ответы [ 9 ]

8 голосов
/ 05 января 2012

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

id phoneNo = [personDict objectForKey:kPhoneKey];

if( phoneNo && ![phoneNo isKindOfClass:[NSNull class]] )
{
    NSString *tempPhone = [NSString stringWithFormat:@"%@", [personDict objectForKey:kPhoneKey]];
    NSLog(@"NSString *tempPhone = %@",tempPhone);
}
else
{
    NSLog(@"NSString *tempPhone is null");
}
1 голос
/ 26 апреля 2017

if ([str_name isKindOfClass: [NSNull class]])

у меня работает ...

1 голос
/ 05 января 2012

Это так:

if (![tempPhone isKindOfClass:[NSNull class]] && tempPhone != nil)
1 голос
/ 05 января 2012
if (tempPhone != nil || [tempPhone isEqualToString:@"(null)"])

У меня работает.

1 голос
/ 05 января 2012

Я думаю, что у вашего personDict нет объекта для ключа kPhoneKey, поэтому он возвращает nil.Когда вы форматируете nil, используя %@, вы получаете строку "(null)".

id object = [personDict objectForKey:kPhoneKey];
if (object) {
    NSString *tempPhone = [NSString stringWithFormat:@"%@", object];
    NSLog(@"NSString *tempPhone = %@",tempPhone);
} else {
    // object is nil
}
0 голосов
/ 19 ноября 2013

Сначала нам нужно проверить длину строки.

if (tempPhone.length == 0) `

{

// Ваша строка имеет пустое значение (E.x, (null))

}

еще

{

// У вас есть некоторые значения в этой строке

} `

0 голосов
/ 05 января 2012

В случае, если строка имеет нулевое значение. Пример в NSLog .. Реализуйте таким образом ..

  if ([StringName isKindOfClass:[NSNULL Class]]) {

   }
   else {

   }
0 голосов
/ 05 января 2012

Поскольку метод compare возвращает тип NSComparisonResult, который определяется как

enum _NSComparisonResult {NSOrderedAscending = -1, NSOrderedSame, NSOrderedDescending};
typedef NSInteger NSComparisonResult;

Если строка одинакова, она вернет NSOrderedSame со значением NSInteger 0.

Таким образом, следующая строка фактически означает ...

if (![tempPhone compare:@"<null>"]) // `tempPhone` is equals to `@"<null>"`

или в более понятном объяснении, если значение tempPhone равно @"<null>".

Вы должны написать это как

if ([tempPhone compare:@"<null>"] != NSOrderedSame)

или

if (![tempPhone isEqualString:@"<null>"])
0 голосов
/ 05 января 2012

Я проверил webResponse (JSON, в моем случае). Он возвращал мне строку со значением:

<null>       

Итак, у меня сработало следующее условие:

if (![tempPhone isEqualToString:@"<null>"])

Спасибо за все ваше время. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...