NSDictionary NSMutableDictionary遍历、key排序、key过滤

原始字典

        NSDictionary *dict = @{@"name":@"qyang",
                               @"age":@"28",
                               @"sex":@"man",
                               @"other":@"hello",
                               };

1、遍历与查找

        //使用代码块遍历key-value
        [dict enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
            NSLog(@"%@ = %@",key,obj);
            if ([obj isEqualToString:@"qyang"]) {
                *stop = YES;
            }
        }];

2、对key进行排序

        //对key进行排序
        NSArray *keysArr = [dict keysSortedByValueUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
            //
            if ([obj1 length] > [obj2 length]) {
                return NSOrderedAscending;
            }
            else if ([obj1 length] == [obj2 length]) {
                return NSOrderedSame;
            }
            else {
                return NSOrderedDescending;
            }
        }];
        NSLog(@"keysArr = %@",keysArr);

打印结果为

keysArr = (
    other,
    name,
    sex,
    age
)

3、对key进行过滤

        //对key进行过滤
        NSSet *keysSet = [dict keysOfEntriesPassingTest:^BOOL(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
            return (BOOL)([obj length]>3);
        }];
        NSLog(@"keysSet = %@",keysSet);

打印结果为

keysSet = {(
    other,
    name
)}

End

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 9,831评论 0 44
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,058评论 19 139
  • 这张图是我临摹心蓝的,用手机软件做出来的,是不是机智如我ପ( ˘ᵕ˘ ) ੭ 工具:autodesk,电容笔 1,...
    一只好coffee阅读 733评论 6 8
  • qq 登陆的时候出现 错误 解决办法在AppDelegate中添加 这个问题会连 以下问题一起解决 在使用第三方登...
    sttech阅读 552评论 0 0
  • 我的家乡在江苏省盐城市,那里秀水环绕,美如诗画,是个著名的风景区,有“黄海之星”的美称,那儿不光景美,而且物...
    九鼎江郎阅读 500评论 0 0