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

