判断2个字典是否相等

1.方式1遍历2个字典,逐个key、value判断。

 NSDictionary *oneDict = @{@"key1" : @"nice", @"key2" : @"相等"};
 NSDictionary *twoDict = @{ @"key2" : @"相等", @"key1" : @"nice"};
       __block BOOL equal = YES;
        [oneDict enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
            id twoObj = [twoDict objectForKey:key];
            if(!twoObj || twoObj != obj) {
                equal = NO;
                *stop = YES;
            }
        }];
//字典相等[9779:161029] -- 1 --
        NSLog(@"%ld",(NSInteger)equal);


NOTE:确保遍历的字段keys多于判断的字典。
这个还是简单的单层字典,如果内部嵌套数组,字典,那就不好判断了。

2.使用isEqual:方法判断

 NSDictionary *oneDict = @{@"key1" : @"nice", @"key2" : @"相等",@"key3" : @[@"a",@"b"]};
 NSDictionary *twoDict = @{ @"key2" : @"相等", @"key1" : @"nice",@"key3" : @[@"a",@"b"]}.mutableCopy;
        NSLog(@"-- %ld --",(NSInteger)[oneDict isEqual:twoDict]);
//字典相等[9930:165382] -- 1 --

可以看出,字典这种无序的结构,可以判断。如果修改数组中的顺序,那个就不相等了。

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

推荐阅读更多精彩内容

  • 53.计算字符 在字符串中获取字符值的数量, 可以使用字符串字符属性中的计数属性: let unusualMena...
    无沣阅读 1,128评论 0 4
  • Objc 相等性判断 今天做任务时遇到一个问题,情况是这样的:我新建一个类,然后创建一个这个类的对象,然后将这个类...
    凌巅阅读 1,527评论 0 1
  • 上个世纪有一种叫做太太口服液的产品,宣传能治疗雀斑,我母亲购买了无数,但是没有任何效果。 上世纪,有一种叫做深海脑...
    雅各布666阅读 387评论 0 2
  • 真正的成熟,是看清看透不看破,淌过浑水之后,依旧保持自己的温暖、原则和信心。所以,世界上依旧有正常的爱情,有平凡但...
    娜哈啊哈阅读 596评论 0 0
  • ️会议时间: 7月 30日(周一)早上 6:00-7:00会议YY房间号:1393814900️参会人员:精英联盟...
    自在聆听阅读 291评论 0 0