98 votes

Comment ajouter à un NSDictionary

J'utilisais un tableau NSMutableArray et je me suis rendu compte que l'utilisation d'un dictionnaire était beaucoup plus simple pour ce que j'essayais de réaliser.

Je veux enregistrer une clé en tant que NSString et une valeur en tant qu'int dans le dictionnaire. Premièrement, comment cela se fait-il? Deuxièmement, quelle est la différence entre un dictionnaire mutable et un dictionnaire normal?

Cordialement.

204voto

Eiko Points 19502

Un dictionnaire mutable peut être changé, c’est-à-dire que vous pouvez ajouter et supprimer des objets. Un immuable est fixé une fois qu'il est créé.

créer et ajouter:

 NSMutableDictionary *dict = [[NSMutableDictionary alloc]initWithCapacity:10];
[dict setObject:[NSNumber numberWithInt:42] forKey:@"A cool number"];
 

et récupérer:

 int myNumber = [[dict objectForKey:@"A cool number"] intValue];
 

39voto

Eimantas Points 29052

En réglant vous utiliseriez setValue:(id)value forKey:(id)key méthode de NSMutableDictionary objet:

 NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:[NSNumber numberWithInt:5] forKey:@"age"];
 

Ou en Objective-C moderne:

 NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
dict[@"age"] = @5;
 

La différence entre mutable et "normal" est, bien, mutabilité. C'est-à-dire que vous pouvez modifier le contenu de NSMutableDictionary (et NSMutableArray ) alors que vous ne pouvez pas le faire avec des valeurs "normales" NSDictionary et NSArray

17voto

Madhu Points 843

Chaque fois que le tableau est déclaré, nous devons seulement ajouter la valeur-clé dans NSDictionary comme

 NSDictionary *normalDict = [[NSDictionary alloc]initWithObjectsAndKeys:@"Value1",@"Key1",@"Value2",@"Key2",@"Value3",@"Key3",nil];
 

nous ne pouvons pas ajouter ou supprimer les valeurs de clé dans ce NSDictionary

Où, comme dans NSMutableDictionary, nous pouvons ajouter les objets après l’initialisation du tableau également en utilisant cette méthode

 NSMutableDictionary *mutableDict = [[NSMutableDictionary alloc]init];'
[mutableDict setObject:@"Value1" forKey:@"Key1"];
[mutableDict setObject:@"Value2" forKey:@"Key2"];
[mutableDict setObject:@"Value3" forKey:@"Key3"];
 

pour supprimer la valeur de la clé, nous devons utiliser le code suivant

 [mutableDict removWObject:@"Value1" forKey:@"Key1"];
 

13voto

Warif Akhand Rishi Points 3407

Version de mise à jour


Créer:

 NSDictionary *dictionary = @{@"myKey1": @7, @"myKey2": @5}; 
 


Changement:

 NSMutableDictionary *mutableDictionary = [dictionary mutableCopy];     //Make the dictionary mutable to change/add
mutableDictionary[@"myKey3"] = @3;
 


La syntaxe abrégée est appelée Objective-C Literals .

1voto

Mark Hernandez Points 1

Vous souhaitez poser est: "quelle est la différence entre un mutables et un non-mutable tableau ou un dictionnaire." Nombre de fois qu'il y a différents termes sont utilisés pour décrire des choses que vous connaissez déjà. Dans ce cas, vous pouvez remplacer le terme "mutable" avec "dynamique." Donc, un mutuable dictionnaire ou un tableau est celui qui est "dynamique" et peut être modifiée à l'exécution, alors qu'un non-mutable dictionnaire ou un tableau est celui qui est "statique" et définis dans votre code et ne change pas au moment de l'exécution (en d'autres mots, vous ne serez pas en ajoutant, en supprimant ou, éventuellement, de trier les éléments.)

Comment c'est fait, vous nous demandez de nous répéter la documentation ici. Tout ce que vous devez faire est de rechercher dans les exemples de code et le Xcode documentation pour voir exactement comment il est fait. Mais la mutable chose me jeta trop lorsque j'ai été en apprentissage, donc je vais vous donner un!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X