Comment puis-je ajouter plusieurs clés et des valeurs à un NSMutableDictionary sans utiliser un tableau?
-
20-09-2019 - |
Question
Je sais que vous pouvez ajouter toutes les clés d'un tableau et l'ajouter à un côté du dictionnaire, mais je suis curieux de savoir comment vous pouvez ajouter ou insérer une valeur à un certain point dans le dictionnaire. La façon dont je l'ai maintenant je crois qu'il ne cesse d'écraser les dernières entrées pour faire place à la nouvelle:
NSMutableDictionary *bookmarks = [[NSMutableDictionary alloc] init];
NSString *keyA = @"Stanford University";
NSString *keyB = @"Apple";
NSString *keyC = @"cs193p.com";
NSString *keyD = @"Stanford on iTunes";
NSString *keyE = @"Stanford Mail";
NSString *surlA = @"http://www.stanford.edu";
NSString *surlB = @"http://www.apple.com";
NSString *surlC = @"http://www.cs193p.stanford.edu";
NSString *surlD = @"http://www.itunes.stanford.edu";
NSString *surlE = @"http://www.stanfordshop.com";
NSURL *urlA;
urlA = [NSURL URLWithString:surlA];
NSURL *urlB;
urlA = [NSURL URLWithString:@"http://www.apple.com"];
[bookmarks setValue:urlA forKey: keyA];
[bookmarks setObject:urlB forKey: keyB];
//[bookmarks setObject:urlC forKey: keyC];
//[bookmarks setObject:urlD forKey: keyD];
//[bookmarks setObject:urlE forKey: keyE];
NSLog(@"%@", [bookmarks valueForKey:keyA]);
Heres la sortie:
2010-01-13 11: 08: 51,484 assignment_1b [6035: a0f] http://www.apple.com
La solution
Je suis surpris que le code ne se bloque pas seulement. Voir ici:
NSURL *urlA;
urlA = [NSURL URLWithString:surlA];
NSURL *urlB;
urlA = [NSURL URLWithString:@"http://www.apple.com"];
Vous assignez à Urla deux fois et jamais attribuer à urlB. Résoudre ce problème et vous verrez la valeur correcte enregistrée.
Notez également que vous pouvez faire ceci:
NSLog(@"dictionary: %@", anNSDictionary);
Et voir toutes les paires clé / valeur dans le dictionnaire.