2010-01-13 9 views
0

Je sais que vous pouvez ajouter toutes les clés à 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:Comment ajouter plusieurs clés et valeurs à un NSMutableDictionary sans utiliser de tableau?

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

+0

Le code que vous affichez devrait fonctionner correctement et ne pas écraser quoi que ce soit. Pourquoi pensez-vous que cela ne fonctionne pas? – Chuck

+0

le message édité pour afficher le journal de la console et l'instruction nslog – nickthedude

Répondre

5

Je suis surpris que le code ne plante pas seulement. Voir ici:

NSURL *urlA; 
urlA = [NSURL URLWithString:surlA]; 
NSURL *urlB; 
urlA = [NSURL URLWithString:@"http://www.apple.com"]; 

Vous affectez deux fois à urlA et vous ne l'attribuez jamais à urlB. Corrigez cela et vous verrez la bonne valeur enregistrée.

Notez également que vous pouvez faire ceci:

NSLog(@"dictionary: %@", anNSDictionary); 

Et voir toutes les paires clé/valeur dans le dictionnaire.

+0

Wow, j'ai complètement passé en revue le deuxième 'urlA'. Bonne prise. – Chuck

+2

Il mélange également 'setValue: forKey:' avec 'setObject: forKey:' –

+0

ok c'était ce qui se passait, je pense que cela a du sens laissez-moi essayer et résoudre ce problème, merci pour l'aide. – nickthedude