iOS中处理空数据

作者: SuperDanny | 来源:发表于2015-08-13 15:27 被阅读1244次

今天无意间看到有朋友问处理那些繁琐的空数据问题,本人以前做过类似的处理,现在由于知识有限,能想到的就是利用递归的方式进行处理。

Note:
1)由于本人尚未进行全面的测试,如果大家发现有任何错误的,请留言指出。一同完善它。
2)如果您有更加完美的处理方案,也希望您能分享一下。

#import "CheckTool.h"

@implementation CheckTool

///主要调用该方法
+ (id)replaceNullData:(id)obj {
    if ([obj isKindOfClass:[NSDictionary class]]) {
        return [self replaceNullWithDictionary:obj];
    }
    else if ([obj isKindOfClass:[NSArray class]]) {
        return [self replaceNullWithArray:obj];
    }
    else if ([obj isKindOfClass:[NSNumber class]]) {
        if ([obj isKindOfClass:[NSNull class]] || obj == nil) {
            obj = @(0);
        }
        return obj;
    }
    else if ([obj isKindOfClass:[NSString class]]) {
        return [self replaceNullValue:obj];
    }
    return obj;
}

///处理字典
+ (id)replaceNullWithDictionary:(NSMutableDictionary *)dic {
    NSMutableDictionary *tempDic = [NSMutableDictionary dictionary];
    NSArray *allKey = [dic allKeys];
    for (NSString *key in allKey) {
        [tempDic setObject:[self replaceNullData:dic[key]] forKey:key];
    }
    return tempDic;
}

///处理数组
+ (id)replaceNullWithArray:(NSMutableArray *)arr {
    __block NSMutableArray *tempArr = [NSMutableArray array];
    [arr enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        [tempArr addObject:[self replaceNullData:obj]];
    }];
    return tempArr;
}

///处理字符串
+ (NSString *)replaceNullValue: (NSString *)string {
    NSString * newStr = [NSString stringWithFormat:@"%@",string];
    if ([newStr isKindOfClass:[NSNull class]] ||
        newStr == nil ||
        [newStr isEqualToString:@"(null)"]||
        [newStr isEqualToString:@""] ||
        [newStr isEqualToString:@"null"] ||
        [newStr isEqualToString:@"<null>"]) {
        newStr = @"";
    }
    return newStr;
}

@end

再一次感谢您花费时间阅读这篇文章!

微博: @Danny_吕昌辉
博客: SuperDanny

2015 年 08月 13日

相关文章

  • iOS中处理空数据

    今天无意间看到有朋友问处理那些繁琐的空数据问题,本人以前做过类似的处理,现在由于知识有限,能想到的就是利用递归的方...

  • ios处理空数据

    define VerifyJsonValue(value) ({id tmp; if ([value isKind...

  • NSDictionary中读取到'null'值时

    在iOS app开发中,偶尔会出现这种场景,由于后台人员对于接口数据没有做空值处理,导致客户端接收到的有些数据为空...

  • iOS空数据处理

    本来应该很早就写的 , 一直觉得没有写这个的必要,今天比较闲 想了想还是写下这个。大多数情况下,我们的app 会出...

  • iOS数据存储

    在iOS开发中必不可少的要用到数据存储,数据的处理是iOS开发中的核心技术,适当的对数据进行持久化存储可以实现应用...

  • iOS数据存储之偏好设置和属性列表

    前言 在iOS开发中必不可少的要用到数据存储,数据的处理是iOS开发中的核心技术,适当的对数据进行持久化存储可以实...

  • iOS的数据存储

    背景 在iOS开发中必不可少的要用到数据存储,数据的处理是iOS开发中的核心技术,适当的对数据进行持久化存储可以实...

  • 收藏博客

    iOS: iOS VOIP后台处理 python: tornado 翻译 tornado 框架 数据库: 数据库基...

  • Swift4 UITableView和UICollectionV

    XYEmptyDataView iOS项目中用于展示空数据的视图,UIScrollView空数据视图分类,简单使用...

  • iOS 今日面试总结

    1.怎么对接口返回的空数据null做数据保护? 网上有个很牛逼的第三方框架NullSafe,可以处理iOS开发中服...

网友评论

    本文标题:iOS中处理空数据

    本文链接:https://www.haomeiwen.com/subject/kstwqttx.html