¿Cómo se añaden varias claves y valores a un NSMutableDictionary sin necesidad de utilizar una matriz?

StackOverflow https://stackoverflow.com/questions/2059397

Pregunta

Sé que podría agregar todas las claves para una matriz y añadirlo a un lado del diccionario pero tengo curiosidad cómo se pueden agregar o insertar un valor en un cierto punto en el diccionario. La forma en que tengo ahora que creo que sólo mantiene sobrescribir las últimas entradas para hacer espacio para el nuevo:

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 salida:

2010-01-13 11: 08: 51.484 assignment_1b [6035: a0f] http://www.apple.com

¿Fue útil?

Solución

Me sorprende que el código no sólo bloquee. Ver aquí:

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

Se está asignando a URLA dos veces y nunca asignar a urlB. Arreglar eso y verá el valor correcto iniciar sesión.

Tenga en cuenta también que se puede hacer esto:

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

Y ver todos los pares clave / valor en el diccionario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top