У меня есть NSMutableArray
названные животные. Мне нужно создать NSMutableDictionary
так, чтобы все имена в массиве животных имели Keys
, которые начинаются с определенной первой буквы = Values
.NSMutableDictionary setValue:/forKey :?
Это животные массив:
NSMutableArray *animals = [NSMutableArray arrayWithObjects:@"Bear", @"Black Swan", @"Buffalo", @"Camel", @"Cockatoo", @"Dog", @"Donkey", @"Emu", @"Giraffe", @"Greater Rhea", @"Hippopotamus", @"Horse", @"Koala", @"Lion", @"Llama", @"Manatus", @"Meerkat", @"Panda", @"Peacock", @"Pig", @"Platypus", @"Polar Bear", @"Rhinoceros", @"Seagull", @"Tasmania Devil", @"Whale", @"Whale Shark", @"Wombat", nil];
это мой код, чтобы установить его в MutableDictionary
:
for(NSString *str in animals) {
NSString *firstLetter = [str substringToIndex:1];
NSArray *newArr = [NSArray arrayWithObject:str];
[myMutableDictionary setValue:newArr forKey:firstLetter];
}
Проблема заключается в том, что для каждого ключа устанавливается только одно значение, но мне нужно все объекты имеют первую букву с одинаковым значением. Например. value = 'b' -> @ "Bear", @ "Black Swan", @ "Buffalo".
Просто, чтобы быть ясным ... Вам просто нужны имена, сгруппированные по их первой букве, или вам нужно их первое письмо для чего-то вроде индексации в виде таблицы? – Alladinian
Для стартеров [NSDictionary setValue: forKey] не работает, как вы думаете. Просмотрите документы по этому поводу. Он установит значение только для одного ключа, соответствующего точно этому значению. Вам нужно будет использовать что-то вроде NSPredicate, чтобы найти все соответствующие значения и получить массив подмножества, который вы можете скопировать в NSDictionary. –
@ Alladinian как индексирование в tableview – Sattar