Приветствие. У меня есть NSmutableDictionary и хочу заполнить его.Population NSmutableDictionary error
- (IBAction)addCourse:(UIButton *)sender {
//NSMutableArray *keys = [[NSMutableArray alloc] init];
NSMutableDictionary *contents = [[NSMutableDictionary alloc] init];
//To add content and keys
NSInteger numRow=[picker selectedRowInComponent:kNumComponent];//0=1st,1=2nd,etc
NSInteger SeaRow=[picker selectedRowInComponent:kSeaComponent];//0=fall,1=spring,2=summer
NSInteger CourseRow=[picker selectedRowInComponent:kCourseComponent];
NSString *num=Number[numRow];
NSString *season=Season[SeaRow];
NSString *course=Course[CourseRow];
NSString *AddKey=[NSString stringWithFormat:@"%@ %@",num,season];
[contents setObject:[NSMutableArray arrayWithObjects:course, nil] forKey:AddKey];
// NSLog(@"%@", key);//test key here, it works
NSLog(@"Dictionary: %@", [contents description]);//test dictionary here
...}
Вот, у меня есть кнопка, когда я нажимаю его, num
и season
и образуют ключ, и связанный с ним course
будет добавить в словарь. Однако, когда я проверить его с
NSLog(@"Dictionary: %@", [contents description]);
показать все содержание в словаре, только последняя запись в моем выборе показывается. Другими словами, при заполнении словаря предыдущие данные были переопределены более поздним. В чем проблема?
Обновление: Спасибо за совет Хавьера. Это исправляет эту проблему. Но теперь в новой ситуации только один ключ может содержать один контент. Следующий контент будет отменять старый, почему это так?
Спасибо за ваш ответ. Кажется, эта проблема решена. Но при использовании этого метода 1 ключ может содержать только один контент, содержимое будет переоценено, что делать, пожалуйста? – user4441082
[содержание setObject: [NSMutableArray arrayWithObjects: course, nil] forKey: AddKey]; каждый раз задает новый массив, и это неправильно. Сначала нужно извлечь массив, связанный с ключом, затем добавить к этому массиву объект и, наконец, вызвать setObject: с этим массивом. –
Спасибо за ваше терпение. Не могли бы вы показать мне пример? Большое спасибо. – user4441082