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多于判斷的字典。
這個還是簡單的單層字典晴音,如果內(nèi)部嵌套數(shù)組柔纵,字典,那就不好判斷了锤躁。
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 --
可以看出搁料,字典這種無序的結(jié)構(gòu)展融,可以判斷弄跌。如果修改數(shù)組中的順序扭屁,那個就不相等了渴逻。