iOS開(kāi)發(fā)中判斷字符串為空的方法
前言:
判斷字符串為空:看似簡(jiǎn)單的問(wèn)題,有人會(huì)說(shuō)不就使用[string isEqualToString:@""]或者更簡(jiǎn)單的string.text == nil就行了嘛。但是并沒(méi)有考慮到其中存在的一些問(wèn)題,例如當(dāng)字符串中存在空格或者換行時(shí)或者當(dāng)請(qǐng)求后臺(tái)數(shù)據(jù)時(shí)得到的是進(jìn)行JSON解析的時(shí)候, 如果解析出的NSDictionary中某個(gè)key對(duì)應(yīng)的value為空, 則系統(tǒng)會(huì)把它處理為NSNull類的單例對(duì)象。這些情況下,上面的判斷方法就不會(huì)起到作用。
具體實(shí)現(xiàn):
+ (BOOL)isBlankString:(NSString *)aStr {
if (!aStr) {
return YES;
}
if ([aStr isKindOfClass:[NSNull class]]) {
return YES;
}
NSCharacterSet *set = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSString *trimmedStr = [aStr stringByTrimmingCharactersInSet:set];
if (!trimmedStr.length) {
return YES;
}
return NO;
}
具體解釋:
代碼中包含了NSString為空的三種情況:
1.NSString對(duì)象沒(méi)有初始值。
if (!aStr) {
return YES;
}
2.期望得到一個(gè)NSString字符串, 但卻不幸遇到了NSNull。
if ([aStr isKindOfClass:[NSNull class]]) {
return YES;
}
3.字符串中除了空格和換行, 不包含任何其他字符。
對(duì)于這種情況, 可以借助字符集類NSCharacterSet和NSString類的一個(gè)方法來(lái)做判斷, 具體代碼如下:
// 創(chuàng)建一個(gè)字符集對(duì)象, 包含所有的空格和換行字符
NSCharacterSet *set = [NSCharacterSet whitespaceAndNewlineCharacterSet];
// 從字符串中過(guò)濾掉首尾的空格和換行, 得到一個(gè)新的字符串
NSString *trimmedStr = [aStr stringByTrimmingCharactersInSet:set];
// 判斷新字符串的長(zhǎng)度是否為0
if (!trimmedStr.length) {
// 字符串為空
}
總結(jié)
以上所述是小編給大家介紹的iOS開(kāi)發(fā)中判斷字符串為空的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
iOS tableView多輸入框如何獲取數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于iOS tableView多輸入框如何獲取數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
詳解iOS應(yīng)用開(kāi)發(fā)中autoresizing尺寸自動(dòng)適應(yīng)屬性的用法
這篇文章主要介紹了iOS應(yīng)用開(kāi)發(fā)中autoresizing尺寸自動(dòng)適應(yīng)屬性的用法,文中講解了使用代碼和Storyboard兩種方式調(diào)節(jié)autoresizing的方法,示例代碼為Objective-C,需要的朋友可以參考下2016-03-03
IOS開(kāi)發(fā)之路--C語(yǔ)言預(yù)處理
由于預(yù)處理指令是在編譯之前就進(jìn)行了,因此很多時(shí)候它要比在程序運(yùn)行時(shí)進(jìn)行操作效率高。在C語(yǔ)言中包括三類預(yù)處理指令,今天將一一介紹:宏定義、條件編譯、文件包含2014-08-08
iOS之單獨(dú)使用UISearchBar創(chuàng)建搜索框的示例
本篇文章主要介紹了iOS之單獨(dú)使用UISearchBar創(chuàng)建搜索框的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
IOS 解決推送本地國(guó)際化 loc-key 本地化失敗的問(wèn)題
本文主要介紹IOS 推送國(guó)際化問(wèn)題,在開(kāi)發(fā) IOS 項(xiàng)目過(guò)程中對(duì)軟件的國(guó)際化有的項(xiàng)目需求是需要的,這里給大家一個(gè)示例,有需要的小伙伴可以參考下2016-07-07
iOS逆向工程使用dumpdecrypted工具給App脫殼
這篇文章主要介紹了iOS逆向工程使用dumpdecrypted工具給App脫殼的相關(guān)資料,本文圖文并茂給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09

