最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決JSON數(shù)據(jù)因?yàn)閚ull導(dǎo)致數(shù)據(jù)加載失敗的方法

 更新時(shí)間:2016年09月20日 11:05:42   投稿:daisy  
前段時(shí)間發(fā)現(xiàn)一個(gè)問(wèn)題,當(dāng)JSON數(shù)據(jù)中有null會(huì)導(dǎo)致數(shù)據(jù)加載失敗,后來(lái)解決了,現(xiàn)在將解決方法分享給大家,有同樣問(wèn)題的朋友們可以參考。下面來(lái)一起看看吧。

一、首先分析問(wèn)題:

使用NSJSONSerialization或者AFN框架的AFHTTPSessionManager(底層也是NSJSONSerialization)將NSData數(shù)據(jù)轉(zhuǎn)化成OC對(duì)象,有時(shí)會(huì)出現(xiàn)URL正確,加載數(shù)據(jù)任然會(huì)報(bào)錯(cuò):

 reason: '-[NSNull length]: unrecognized selector sent to instance

分析原因發(fā)現(xiàn),轉(zhuǎn)化出來(lái)的OC對(duì)象中含有null.所以,NSNull沒(méi)有l(wèi)ength方法,所以會(huì)報(bào)找不到方法錯(cuò)誤。

二、解決辦法:將"null"替換成“ ”。

     1.先將NSData數(shù)據(jù)轉(zhuǎn)化成NSString;

     2.再對(duì)轉(zhuǎn)化好的NSString進(jìn)行替換;

     3.替換好的NSSting再轉(zhuǎn)化成NSData;

     4.NSData轉(zhuǎn)化成OC對(duì)象

下面提供一個(gè)封裝好的方法,以后直接使用就好了

//替換數(shù)據(jù)中的空字符串
+ (NSArray*)arrayWithNoNullArray:(NSArray*)originalArray {
  //array -> string
  NSData *data = [NSJSONSerialization dataWithJSONObject:originalArray options:0 error:nil];
  NSString *str =[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
  //替換
  NSString *nStr = [str stringByReplacingOccurrencesOfString:@"null" withString:@"\"\""];
  //string -> array
  NSData *nData =[nStr dataUsingEncoding:NSUTF8StringEncoding];
  return [NSJSONSerialization JSONObjectWithData:nData options:0 error:nil];
}

傳入一個(gè)含有null的OC數(shù)組,直接返回替換過(guò)的新數(shù)組。用不含null的數(shù)組再去加載數(shù)據(jù),就不會(huì)有問(wèn)題了。

好了,以上就是解決JSON數(shù)據(jù)因?yàn)閚ull導(dǎo)致數(shù)據(jù)加載失敗的方法,希望對(duì)有需要的朋友們有所幫助,如果有疑問(wèn)打擊可以留言交流。

相關(guān)文章

  • iOS中多線程的入門(mén)使用教程(Swift)

    iOS中多線程的入門(mén)使用教程(Swift)

    這篇文章主要給大家介紹了關(guān)于iOS中多線程入門(mén)使用的相關(guān)資料,一個(gè)進(jìn)程中可以開(kāi)啟多條線程,每條線程可以并行執(zhí)行不同的任務(wù),本文通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • iOS利用CoreImage實(shí)現(xiàn)人臉識(shí)別詳解

    iOS利用CoreImage實(shí)現(xiàn)人臉識(shí)別詳解

    OS的人臉識(shí)別從iOS 5(2011)就有了,不過(guò)一直沒(méi)怎么被關(guān)注過(guò)。人臉識(shí)別API允許開(kāi)發(fā)者不僅可以檢測(cè)人臉,也可以檢測(cè)到面部的一些特殊屬性,比如說(shuō)微笑或眨眼。下面這篇文章主要給大家介紹了iOS利用CoreImage實(shí)現(xiàn)人臉識(shí)別的相關(guān)資料,需要的朋友可以參考下。
    2017-05-05
  • IOS展開(kāi)三級(jí)列表效果示例

    IOS展開(kāi)三級(jí)列表效果示例

    今天介紹的是一個(gè)很不錯(cuò)的三級(jí)列表展開(kāi)效果的例子,文章運(yùn)用實(shí)例代碼介紹的很詳細(xì),提供給學(xué)習(xí)IOS的小伙伴們使用。
    2016-08-08
  • iOS常見(jiàn)的幾個(gè)修飾詞深入講解

    iOS常見(jiàn)的幾個(gè)修飾詞深入講解

    這篇文章主要給大家介紹了關(guān)于iOS常見(jiàn)的幾個(gè)修飾詞的相關(guān)資料,iOS修飾詞包括assign、weak、strong、retain、copy、nonatomic、atomic、readonly、readwrite,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-09-09
  • IOS 單擊手勢(shì)的添加實(shí)現(xiàn)代碼

    IOS 單擊手勢(shì)的添加實(shí)現(xiàn)代碼

    這篇文章主要介紹了IOS 單擊手勢(shì)的添加實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • IOS CocoaPods詳細(xì)使用方法

    IOS CocoaPods詳細(xì)使用方法

    自從有了CocoaPods以后,這些繁雜的工作就不再需要我們親力親為了,只需要我們做好少量的配置工作,CocoaPods會(huì)為我們做好一切
    2016-09-09
  • 探究iOS多線程究竟不安全在哪里?

    探究iOS多線程究竟不安全在哪里?

    iOS多線程安全的概念在很多地方都會(huì)遇到,為什么不安全,不安全又該怎么去定義,其實(shí)是個(gè)值得深究的話題。那么通過(guò)下面這篇文章小編和大家一起來(lái)探究了iOS多線程究竟不安全在哪里?需要的朋友可以參考學(xué)習(xí)。
    2017-02-02
  • 解析iOS開(kāi)發(fā)中的FirstResponder第一響應(yīng)對(duì)象

    解析iOS開(kāi)發(fā)中的FirstResponder第一響應(yīng)對(duì)象

    這篇文章主要介紹了解析iOS開(kāi)發(fā)中的FirstResponder第一響應(yīng)對(duì)象,包括View的FirstResponder的釋放問(wèn)題,需要的朋友可以參考下
    2015-10-10
  • iOS獲取短信驗(yàn)證碼倒計(jì)時(shí)的兩種實(shí)現(xiàn)方法

    iOS獲取短信驗(yàn)證碼倒計(jì)時(shí)的兩種實(shí)現(xiàn)方法

    本篇文章主要介紹了iOS獲取短信驗(yàn)證碼倒計(jì)時(shí)的兩種實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • iOS Remote Notification遠(yuǎn)程消息推送處理

    iOS Remote Notification遠(yuǎn)程消息推送處理

    這篇文章主要為大家詳細(xì)介紹了iOS Remote Notification遠(yuǎn)程消息推送處理,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評(píng)論

黑龙江省| 博客| 柳江县| 永平县| 镇安县| 海盐县| 雷州市| 乐业县| 蓬溪县| 宜昌市| 新建县| 永济市| 资溪县| 子洲县| 麟游县| 彭州市| 新邵县| 大洼县| 任丘市| 横山县| 新津县| 都昌县| 北宁市| 万山特区| 和林格尔县| 沂水县| 乌拉特后旗| 达日县| 来宾市| 苍南县| 汾阳市| 聊城市| 承德县| 福安市| 阿鲁科尔沁旗| 武定县| 浦城县| 肃南| 蓬安县| 阜新市| 襄城县|