NSString的"空"颓鲜,有哪些情況呢:
NSString *str;
1 str = @"";
2 str = nil;
3 str = NULL;
4 str = @"? ";(中間有空格负间,有時(shí)候需要考慮這種情況)
唯笙。。找默。暫時(shí)先列舉這些常見的情況吧艇劫,其他情況我還在研究,如NSNull惩激,Nil等店煞,好暈的額。咧欣。
于是我們可能會(huì)寫這樣的代碼來判斷str是否為空:
//針對(duì)case1
if ([str isEqualToString:@""]) {
NSLog(@"str is empty!!!");
}
//針對(duì)case2
if (str == nil) {
NSLog(@"str is empty!!!");
}
//針對(duì)case3
if (str==NULL) {
NSLog(@"str is empty!!!");
}
是不是覺得很麻煩浅缸,似乎需要對(duì)每種情況都使用相應(yīng)的代碼來進(jìn)行保護(hù)轨帜。我也覺得這不科學(xué)魄咕。查了寫資料發(fā)現(xiàn),其實(shí)只要用一句代碼就能搞定了:
if ( str.length == 0) {
NSLog(@"str is empty!!!");
}
這句代碼可以通吃上面case1蚌父、2哮兰、3毛萌;其實(shí)也是好理解的,nil本身也是一個(gè)對(duì)象喝滞,在ios中給nil
發(fā)消息是不會(huì)崩潰的阁将,只不過沒啥反應(yīng)而已,因此length也是默認(rèn)的0了右遭;
至于類似于case4的情況做盅,可以先將字符串中的空格"? " Trim掉,然后在進(jìn)行判斷:
step1:? 定義宏:
#define allTrim( object ) [object stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ]
step2: 使用之:
NSString *emptyString = @"?? ";
if ( [allTrim( emptyString ) length] == 0 ) NSLog(@"Is empty!");
各位看官窘哈,這是筆者第一篇博客呢吹榴,若對(duì)您有用,請(qǐng)支持滚婉,請(qǐng)打賞图筹,筆者會(huì)再接再厲~