Come faccio ad aggiungere più chiavi e valori per un NSMutableDictionary senza l'utilizzo di un array?

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

Domanda

So che si potrebbe aggiungere tutte le chiavi di un array e aggiungerlo a un lato del dizionario, ma sono curioso come è possibile aggiungere o inserire un valore a un certo punto nel dizionario. Il modo in cui ce l'ho adesso credo che continua a sovrascrivere le ultime voci per fare spazio a quello nuovo:

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]);

Ecco l'output:

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

È stato utile?

Soluzione

Sono sorpreso che il codice non va in crash solo. Vedi qui:

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

Si stanno assegnando a Urla due volte e mai assegnando a urlB. Fissare che e vedrete il valore corretto registrata.

Si noti inoltre che si può fare questo:

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

E vedere tutte le coppie chiave / valore nel dizionario.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top