在iOS開發(fā)中通常碰到一個問題校摩,就是空椒楣。比如說空字符串。
當(dāng)我們在處理或者判斷一個對象是不是為空的時候角溃,該如何處理呢颗圣。
nil
對于這個預(yù)定義的標識符喳钟,#define nil (void*)0
當(dāng)你使用%p轉(zhuǎn)換說明符去打印nil的地址時可以得到 0x0
Null
Null類是Cocoa提供的一個代表空的類,在很多集合類比如NSArray在岂,NSSet等不能存儲nil值奔则,我們可以使用Null類的對象來替代。
[Null null];發(fā)送這個消息產(chǎn)生唯一的空對象洁段,來滿足需求应狱。
@""
關(guān)于這個空字符串共郭,把它理解成一個長度為0的字符串對象即可祠丝。
<pre>
封裝一個簡單的判斷字符串是否為空的方法。
應(yīng)用場景:
在做網(wǎng)絡(luò)請求時,服務(wù)器端有可能返回空的字符串除嘹,在終端打印出來有時顯示null,(null),或者<null>,
這是由于服務(wù)器端使用不同的語言所導(dǎo)致写半。我們不能簡單的使用==來與Null的對象進行比較。
此外如果我們想過濾掉@" "或者@" "這種空格型字符串尉咕,用下面的這個封裝方法就可以解決了叠蝇。
//
-
(BOOL)isNotEmpty{
if (self == nil) {
return NO;
}if([self isKindOfClass:[NSNull class]]){
return NO;
}if (self.length == 0) {
return NO;
}if (self.length != 0) {
return [self stringByReplacingOccurrencesOfString:@" " withString:@""].length != 0;
}return YES;
}
</pre>