自动过滤NSDictionary和NSArray中值为nil

在开发中,不知道各位开发有没有遇到过这种情况,对于服务器返回的null深有体会,动不动会导致NSDictionary和NSArray放入空的值,从而导致crash;这个蛋痛的经历又不多说了;

解决

想到的是category, 的确可以满足我的需求, 可以重写掉一些构造方法

NSDictionary:
+(instancetype)dictionaryWithObjects:(const id[])objects forKeys:(const id[])keys count:(NSUInteger)cnt
{
    NSMutableArray *validKeys = [NSMutableArray new];
    NSMutableArray *validObjs = [NSMutableArray new];

    for (NSUInteger i = 0; i < cnt; i ++) {
        if (objects[i] && keys[i])
        {
            [validKeys addObject:keys[i]];
            [validObjs addObject:objects[i]];
        }
    }

    return [self dictionaryWithObjects:validObjs forKeys:validKeys];
}
NSArray:
+(instancetype)arrayWithObjects:(const id [])objects count:(NSUInteger)cnt
{
    NSMutableArray *ma = [NSMutableArray new];

    for (NSUInteger i = 0; i < cnt; i ++) {
        if (objects[i])
        {
            [ma addObject:objects[i]];
        }
    }

    return [[NSArray alloc] initWithArray:ma];

}
测试一波
5CB2FE9D-722E-431C-92D8-8375ACA9B9B5.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • tips: 9.25更新了一下实现方式, 让实现更简洁, 更科学 背景 NSDictionary和NSArray在...
    MD5Ryan阅读 9,424评论 4 19
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,873评论 0 9
  • 我有一闺密,谈起自己的父母,总能引来别人的羡慕。 我的这位闺密来自农村。很小的时候,家里的条件非常不好。但是她的父...
    沐子2阅读 3,816评论 0 1
  • 5月5号,我离开了海燕禅寺。上次是去年国庆,是为了解决我心头一件人生大事。从去年国庆到今年五一,头脑渐渐清晰 首先...
    大明186阅读 1,801评论 0 0
  • 最近嗓子痒,引发了咳嗽还带有异物 想想最近几个月真是多事之秋 12月发烧 1月发烧 2月腰疼 3月感冒 4月嗓子痒...
    征人随说阅读 1,490评论 0 0

友情链接更多精彩内容