iOS开发iOS学习笔记程序员

后台数据为空crash解决办法

2017-03-14  本文已影响371人  爱吃鱼的小灰

作为移动端开发人员做梦都想要简单点 交互的方式简单点

后台给返回的.png

这种的空数据,此处省略三个字!你一般直接解析有数据还好,给你个<null>你就会死的很惨!所以咱们还是做个处理吧!

 #import <Foundation/Foundation.h>
@interface DataNullCheckTool : NSObject
@end
NSString *checkString(NSString *str);
NSString *checkNumber(NSString *str);

2、.m文件内容

#import "DataNullCheckTool.h"
@implementation DataNullCheckTool
@end
NSString *checkString(id str){
    NSString *tmpStr =  [NSString stringWithFormat:@"%@",str];
    if ([str isKindOfClass:[NSNull class]]||
        [tmpStr isEqualToString:@"(null)"]||
         [tmpStr isEqualToString:@"<null>"]) {
        tmpStr = @"暂无数据";
    }
    return tmpStr;
}
NSString *checkNumber(id str){
    NSString *tmpStr = [NSString stringWithFormat:@"%@",str];
    if ( [str isKindOfClass:[NSNull class]]||![str floatValue]) {
        tmpStr = @"0";
    }
    //去掉数字中的","
    NSMutableString *newStr = [NSMutableString stringWithString:tmpStr];
    for (int i = 0; i < newStr.length; i++) {
        unichar c = [newStr characterAtIndex:i];
        NSRange range = NSMakeRange(i, 1);
        if (c == ',') {
            [newStr deleteCharactersInRange:range];
            --i;
        }
    }
    NSString *newString = [NSString stringWithString:newStr];
    CGFloat tmpFloat = [newString floatValue] ;
    tmpStr = [NSString stringWithFormat:@"%.2f",tmpFloat];
    return tmpStr;
}
 + (NSMutableArray *)parseRespondsData:(id )respondsData
{
// 创建一个可变数组
    NSMutableArray * dataArray = [NSMutableArray array];
    // 拿到要解析的数据我的这个数据里边是个数组
    NSArray * array = respondsData[@"datas"];
    // 首先判断这个数组是否为空
    if (array.count != 0) {
        for (NSDictionary * dic  in array) {
            // 创建model
            MoreNotificationModel * model = [[MoreNotificationModel alloc]init];
            // model解析这个是判断String类型的,还有个checkNumber是对数字判断的
            model.news_title = checkString(dic[@"news_title"]);
            model.news_short = checkString(dic[@"news_short"]);
            model.news_content = checkString(dic[@"news_content"]);
            model.create_date = checkString(dic[@"create_date"]);
            
            [dataArray addObject:model];
        }
        NSLog(@"请求到的数据%@",dataArray);
        return dataArray;

    }
    return nil;
}

这样转换后至少没数据时会显示暂无数据或者0不至于你的数据为其他东东导致你项目crash。
写的不好多多指教啊!

上一篇下一篇

猜你喜欢

热点阅读