NSString 判空的最佳方式

NSString的"空",有哪些情况呢:

NSString *str;

1 str = @"";

2 str = nil;

3 str = NULL;

4 str = @"  ";(中间有空格,有时候需要考虑这种情况)

。。。暂时先列举这些常见的情况吧,其他情况我还在研究,如NSNull,Nil等,好晕的额。。

于是我们可能会写这样的代码来判断str是否为空:

//针对case1

if ([str isEqualToString:@""]) {

NSLog(@"str is empty!!!");

}

//针对case2

if (str == nil) {

NSLog(@"str is empty!!!");

}

//针对case3

if (str==NULL) {

NSLog(@"str is empty!!!");

}

是不是觉得很麻烦,似乎需要对每种情况都使用相应的代码来进行保护。我也觉得这不科学。查了写资料发现,其实只要用一句代码就能搞定了:

if ( str.length == 0) {

NSLog(@"str is empty!!!");

}

这句代码可以通吃上面case1、2、3;其实也是好理解的,nil本身也是一个对象,在ios中给nil

发消息是不会崩溃的,只不过没啥反应而已,因此length也是默认的0了;

至于类似于case4的情况,可以先将字符串中的空格"  " Trim掉,然后在进行判断:

step1:  定义宏:

#define allTrim( object ) [object stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ]

step2: 使用之:

NSString *emptyString = @"   ";

if ( [allTrim( emptyString ) length] == 0 ) NSLog(@"Is empty!");

各位看官,这是笔者第一篇博客呢,若对您有用,请支持,请打赏,笔者会再接再厉~

原文链接:Objective-C: Check if NSString is empty

你可能感兴趣的:(NSString 判空的最佳方式)