Получение взаимоисключающих ключей двух элементов NSDictionary - PullRequest
2 голосов
/ 07 марта 2011

У меня есть два разных объекта NSDictionary, где есть ключи, которые принадлежат обеим коллекциям, в то время как есть некоторые ключи, присутствующие только в 1-м словаре, и аналогично, несколько ключей находятся во 2-м словаре, но не в 1-м.1002 * Существует ли эффективный способ сравнения наборов для извлечения ключей, присутствующих в 1-м словаре, которых нет во 2-м? *

В основном, на стандартной диаграмме Венна, элементы набора А, которые делаютне пересекаются с множеством B.

Ответы [ 2 ]

9 голосов
/ 07 марта 2011

NSSet - это то, что вы ищете:

NSMutableSet *keysInA = [NSMutableSet setWithArray:[dictionaryA allKeys]];
NSSet *keysInB = [NSSet setWithArray:[dictionaryB allKeys]];
[keysInA minusSet:keysInB];
NSLog(@"keys in A that are not in B: %@", keysInA);
0 голосов
/ 07 марта 2011
NSCountedSet *dict1keys = [[NSCountedSet alloc] initWithArray:[dictionary1 allKeys]];
NSSet *dict2keys = [NSSet setWithArray:[dictionary2 allKeys]];
[dict1keys minusSet:dict2keys];
NSLog(@"Result : %@", dict1keys);
...