有没有方法来检查2个NSDictionaries是否包含相同的密钥?

时间:2014-08-21 23:38:42

标签: ios nsarray nsdictionary

类似

- (BOOL)isSameValues:(NSArray*)array1 and:(NSArray*)array2
{
    NSCountedSet *set1 = [NSCountedSet setWithArray:array1];
    NSCountedSet *set2 = [NSCountedSet setWithArray:array2];
    return [set1 isEqualToSet:set2];
}

但是有了NSDictionaries。如果两个数组具有相同的值,则返回YES。我需要看看2个字典的键是否相同,忽略了这些值。出于我的目的,可以忽略重复项。

1 个答案:

答案 0 :(得分:2)

您可以使用您的函数,但是用NSSet替换NSCountedSet(这并不重要,因为字典不能有重复的键),并使用NSDictionary的allKeys属性。所以:

- (BOOL)haveSameKeys:(NSDictionary *)dictionary1 and:(NSDictionary *)dictionary2
{
    NSSet *set1 = [NSSet setWithArray:[dictionary1 allKeys]];
    NSSet *set2 = [NSSet setWithArray:[dictionary2 allKeys]];
    return [set1 isEqualToSet:set2];
}