2010-03-17 8 views
1

Existe-t-il un moyen de supprimer les doublons (paire valeur/clé) de NSDictionary?Supprimer les doublons dans NSdictionary

EDIT: Ma description était trompeuse, j'ai des doublons, par ex.
key1-valeur1
key1-valeur1
key2-valeur2
key1-valeur1
etc ..

+2

comment pouvez-vous avoir des doublons dans un dictionnaire? Selon la documentation d'Apple, les doublons sont automatiquement supprimés lorsque vous ajoutez une autre clé du même nom: http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableDictionary_Class/Reference/Reference. html – johnbakers

Répondre

2

L'inversion de la valeur-clé n'est pas une bonne idée car toutes les valeurs ne peuvent pas être des clés. Vous pouvez le faire avec:

// dict est un dictionnaire original, newDict new dictionary withot duplicates.

NSMutableDictionary * newDict = [NSMutableDictionary dictionaryWithCapacity:[dict count]]; 
for(id item in [dict allValues]){ 
    NSArray * keys = [dict allKeysForObject:item]; 
    [newDict setObject:item forKey:[keys objectAtIndex:0]]; 
} 

yuo peut également utiliser LastObject au lieu de objectAtIndex: 0 à laisser d'autres objets clés pour dup

1

Une façon est de mettre les paires clé/valeur dans un dictionnaire en valeur/clé et la conversion de ce retour à la clé/valeur.

0

Je ne peux pas penser à une méthode intégrée. Si vous passez en revue les valeurs, allKeysForObject: vous donnera un tableau de clés pour chaque valeur et si vous avez plus d'une clé, cette valeur a des doublons.

Questions connexes