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!");
各位看官,这是笔者第一篇博客呢,若对您有用,请支持,请打赏,笔者会再接再厉~
网友评论