欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS開發(fā)中判斷字符串為空的方法

 更新時(shí)間:2017年12月14日 10:12:08   作者:iOS開發(fā)周立賀  
判斷字符串為空,看著很簡(jiǎn)單,其實(shí)不然,下面通過本篇文章給大家介紹了iOS開發(fā)中判斷字符串為空的方法,需要的朋友可以參考下

前言:

判斷字符串為空:看似簡(jiǎn)單的問題,有人會(huì)說不就使用[string isEqualToString:@""]或者更簡(jiǎn)單的string.text == nil就行了嘛。但是并沒有考慮到其中存在的一些問題,例如當(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ì)象沒有初始值。

if (!aStr) {
    return YES;
  }

2.期望得到一個(gè)NSString字符串, 但卻不幸遇到了NSNull。

if ([aStr isKindOfClass:[NSNull class]]) {
    return YES;
  }

3.字符串中除了空格和換行, 不包含任何其他字符。

對(duì)于這種情況, 可以借助字符集類NSCharacterSet和NSString類的一個(gè)方法來做判斷, 具體代碼如下:

// 創(chuàng)建一個(gè)字符集對(duì)象, 包含所有的空格和換行字符
NSCharacterSet *set = [NSCharacterSet whitespaceAndNewlineCharacterSet];
// 從字符串中過濾掉首尾的空格和換行, 得到一個(gè)新的字符串
NSString *trimmedStr = [aStr stringByTrimmingCharactersInSet:set];
// 判斷新字符串的長(zhǎng)度是否為0
if (!trimmedStr.length) {
  // 字符串為空
}

總結(jié)

以上所述是小編給大家介紹的iOS開發(fā)中判斷字符串為空的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Flutter之PageView頁面緩存與KeepAlive

    Flutter之PageView頁面緩存與KeepAlive

    這篇文章主要為大家介紹了Flutter之PageView頁面緩存與KeepAlive示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • iOS實(shí)現(xiàn)淘寶上拉進(jìn)入詳情頁交互效果

    iOS實(shí)現(xiàn)淘寶上拉進(jìn)入詳情頁交互效果

    最近遇到一個(gè)項(xiàng)目,項(xiàng)目中某個(gè)新需求的交互要求仿照淘寶上拉從下往上彈出寶貝詳情。所以死打開淘寶APP仔細(xì)看了看,然后自己寫了寫,現(xiàn)在感覺效果差不多了,記錄一下分享給大家,方法自己和大家需要的時(shí)候查看借鑒,感興趣的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • iOS 二維碼生成及掃碼詳解及實(shí)例代碼

    iOS 二維碼生成及掃碼詳解及實(shí)例代碼

    這篇文章主要介紹了iOS 二維碼生成及掃碼詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • IOS 性能優(yōu)化中離屏渲染

    IOS 性能優(yōu)化中離屏渲染

    本文主要介紹了IOS 性能優(yōu)化中離屏渲染的資料,提供了幾種方法講解了優(yōu)化,有需要的小伙伴可以參考下
    2016-10-10
  • iOS開發(fā)中Swift3 監(jiān)聽UITextView文字改變的方法(三種方法)

    iOS開發(fā)中Swift3 監(jiān)聽UITextView文字改變的方法(三種方法)

    在項(xiàng)目中使用文本輸入框出UITextField之外還會(huì)經(jīng)常使用 UITextView ,難免會(huì)有需求監(jiān)聽UITextView文本框內(nèi)文本數(shù)量.下面介紹在swift3中兩種常用方式,需要的朋友參考下吧
    2016-11-11
  • IOS開發(fā)之適配iOS10及Xcode8的注意點(diǎn)

    IOS開發(fā)之適配iOS10及Xcode8的注意點(diǎn)

    這篇文章主要介紹了IOS開發(fā)之適配iOS10及Xcode8的注意點(diǎn),本文給大家介紹了可能出現(xiàn)的問題及相應(yīng)的解決方法,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看看
    2016-10-10
  • iOS UILabel 設(shè)置內(nèi)容的間距及高度的計(jì)算示例

    iOS UILabel 設(shè)置內(nèi)容的間距及高度的計(jì)算示例

    本篇文章主要介紹了iOS UILabel 設(shè)置內(nèi)容的間距及高度的計(jì)算示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • iOS中解決Xcode 8控制臺(tái)亂碼的方式

    iOS中解決Xcode 8控制臺(tái)亂碼的方式

    這篇文章給大家介紹了iOS中解決Xcode 8控制臺(tái)亂碼的方式,文中給出了詳細(xì)解決步驟,相信對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • iOS Runntime 動(dòng)態(tài)添加類方法并調(diào)用-class_addMethod

    iOS Runntime 動(dòng)態(tài)添加類方法并調(diào)用-class_addMethod

    這篇文章主要介紹了iOS Runntime 動(dòng)態(tài)添加類方法并調(diào)用-class_addMethod的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-08-08
  • iOS觸摸事件UITouch應(yīng)用詳解

    iOS觸摸事件UITouch應(yīng)用詳解

    這篇文章主要為大家詳細(xì)介紹了iOS觸摸事件UITouch的應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評(píng)論