NSMutableDictionary setValue:/ forKey:?

Sat*_*tar 2 iphone objective-c ios

我有一个NSMutableArray名叫动物.我需要创建一个NSMutableDictionary这样的动作数组中的所有名称都Keys以特定的第一个字母=开头Values.

这是动物阵列:

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];
Run Code Online (Sandbox Code Playgroud)

这是我的代码,将其设置为MutableDictionary:

 for(NSString *str in animals) {
     NSString *firstLetter = [str substringToIndex:1];
     NSArray *newArr = [NSArray arrayWithObject:str];
     [myMutableDictionary setValue:newArr forKey:firstLetter];
 }
Run Code Online (Sandbox Code Playgroud)

问题是每个键只设置一个值,但我需要所有对象都有一个具有相同值的第一个字母.例如value ='b' - > @"Bear",@"Black Swan",@"Buffalo".

Avt*_*Avt 6

尝试

for (NSString *str in animals) {
    NSString *firstLetter = [str substringToIndex:1];
    if(!myMutableDictionary[firstLetter])
    {
        myMutableDictionary[firstLetter] = [NSMutableArray new];
    }
    NSMutableArray *arr = myMutableDictionary[firstLetter];
    [arr addObject:str];
}
Run Code Online (Sandbox Code Playgroud)