我有一个NSArray,我想创建一个新的NSArray包含原始数组中符合特定条件的对象.标准由返回a的函数决定BOOL.
我可以创建一个NSMutableArray,遍历源数组并复制过滤器函数接受的对象,然后创建它的不可变版本.
有没有更好的办法?
我有一个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".