在Objective C中检查NSString的NOT <null>值的条件</null>

时间:2012-01-05 06:11:05

标签: iphone objective-c ios if-statement

代码:

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])

我也查了this Post.

他们都不适合我。我哪里错了?

9 个答案:

答案 0 :(得分:8)

尝试以下代码

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 :(得分:1)

我认为您的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
}

答案 2 :(得分:1)

if (tempPhone != nil || [tempPhone isEqualToString:@"(null)"])

适合我。

答案 3 :(得分:1)

就是这样:

if (![tempPhone isKindOfClass:[NSNull class]] && tempPhone != nil)

答案 4 :(得分:1)

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

适合我...

答案 5 :(得分:0)

我检查了webResponse(在我的例子中是JSON)。 它返回了我的字符串值:

<null>       

所以,以下条件对我有用:

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

感谢您的所有时间。感谢。

答案 6 :(得分:0)

因为compare方法返回定义为

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

如果字符串相同,它将返回NSOrderedSame NSInteger值为0的{​​{1}}。

因此,以下行实际上意味着......

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

或更明白的解释,如果tempPhone值等于@"<null>"

你应该把它写成

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

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

答案 7 :(得分:0)

如果字符串具有空值。 NSLog中的示例..以这种方式实现..

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

   }
   else {

   }

答案 8 :(得分:0)

首先我们需要检查字符串长度。

if(tempPhone.length == 0)   `

{

//您的String具有空值(E.x,(null))

}

否则

{

//你在这个字符串中有一些值

}`