Как добавить несколько ключей и значений в NSmutableDictionary без использования массива?

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

Вопрос

Я знаю, что вы можете добавить все ключи в массив и добавить его в одну часть словаря, но мне любопытно, как вы можете добавить или вставить значение в определенную точку словаря.То, как я это делаю сейчас, я считаю, что он просто продолжает перезаписывать последние записи, чтобы освободить место для новой:

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

вот результат:

2010-01-13 11:08:51.484 присваивание_1b[6035:a0f] http://www.apple.com

Это было полезно?

Решение

Я удивлен, что код не просто дает сбой.Глянь сюда:

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

Вы назначаете urlA дважды и никогда не назначаете urlB.Исправьте это, и вы увидите записанное правильное значение.

Также обратите внимание, что вы можете сделать это:

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

И просмотрите все пары ключ/значение в словаре.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top