1、起首剖析成績:
應用NSJSONSerialization或許AFN框架的AFHTTPSessionManager(底層也是NSJSONSerialization)將NSData數據轉化成OC對象,有時會湧現URL准確,加載數據任然會報錯:
reason: '-[NSNull length]: unrecognized selector sent to instance
剖析緣由發明,轉化出來的OC對象中含有null.所以,NSNull沒有length辦法,所以會報找不到辦法毛病。
2、處理方法:將"null"調換成“ ”。
1.先將NSData數據轉化成NSString;
2.再對轉化好的NSString停止調換;
3.調換好的NSSting再轉化成NSData;
4.NSData轉化成OC對象
上面供給一個封裝好的辦法,今後直接應用就行了
//調換數據中的空字符串 + (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]; }
傳入一個含有null的OC數組,直接前往調換過的新數組。用不含null的數組再去加載數據,就不會有成績了。
好了,以上就是處理JSON數據由於null招致數據加載掉敗的辦法,願望對有須要的同伙們有所贊助,假如有疑問襲擊可以留言交換。
【處理JSON數據由於null招致數據加載掉敗的辦法】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!