web-dev-qa-db-fra.com

comment supprimer un objet de NSDictionary

Salut, je vais avoir un NSdictionary dans lequel je vais ajouter un tableau avec des "pays" clés. Maintenant, je prends la valeur de ce dictionnaire dans un tableau et je trie le tableau par ordre alphabétique. Maintenant, je veux ajouter ce tableau dans mon dictionnaire (c'est-à-dire que je veux mettre à jour mon dictionnaire avec un nouveau tableau trié et supprimer l'ancien tableau de celui-ci). ....... comment faire cela 

Mon code est le suivant

NSArray *countriesToLiveInArray = [NSArray arrayWithObjects:@"Iceland", @"Greenland", @"Switzerland", @"Norway", @"New Zealand", @"Greece", @"Italy", @"Ireland", nil];
NSDictionary *countriesToLiveInDict = [NSDictionary dictionaryWithObject:countriesToLiveInArray forKey:@"Countries"];


NSArray *tmpary = [countriesToLiveInDict valueForKey:@"Countries"];
NSLog(@"ary value is  %@",ary);
NSArray *sortedArray = [tmpary sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
NSLog(@"sortedArray is %@",sortedArray);

Ici, je veux supprimer les countriesToLiveInArray et les remplacer par triés avec la même valeur de clé, c’est-à-dire pays Merci d’avance ..

27
V.V

Tout d'abord, vous devez utiliser une variable NSMutableDictionary et mettre ce code:

[countriesToLiveInDict removeObjectForKey:@"Countries"];
[countriesToLiveInDict setObject:sortedArray forKey:@"Countries"];
65
MathieuF

Commencez par créer votre NSDictionary dans NSMutableDictionary puis écrivez la ligne de code suivante.

[countriesToLiveInDict removeObjectForKey:@"Countries"];

Cela résoudra définitivement votre problème.

5

NSDictionary ne peut rien enlever, veuillez utiliser NSMutableDictionary, comme ceci:

NSMutableDictionary *countriesToLiveInDict = [NSMutableDictionary dictionaryWithObject:countriesToLiveInArray forKey:@"Countries"];
1
Donald

pour Swift 3 comme @MathieuF y a répondu Vous devez d’abord utiliser un NSMutableDictionary et mettre ce code:

countriesToLiveInDict.removeObject(forKey: "Countries")

je poste ma réponse car j'étais à la recherche de la même question et je m'inspire de @MathieuF 

0
Amr Angry