合并NSArrays在目标C
-
16-09-2019 - |
题
我有一个NSDictionary在各关键点的一个阵列。我后来想到合并的所有价值观纳入一个阵列。是否有办法使用API做一些效率比说:
NSArray *anArray = [someDictionary allValues];
NSMutableArray *newArray = [NSMutableArray array];
start outter loop on anArray
start inner loop on objects in anArray
add objectAtIndex to newArray
解决方案
只是使用 [newArray addObjectsFromArray:anArray];
其他提示
有一些混乱在本Gottlieb的答复所述。为了澄清,他是建议使用 addObjectsFromArray 而不是内在的循环,而Coocoo是困惑,因为他认为它是被建议作为一个替代所有的循环。(如果你这样做,你的确将是留下一个未拼合的特性列阵列为他的异议。)
这里是一个合理的优雅的解决方案,不需要任何明确的循环:
NSArray *anArray = [someDictionary allValues];
NSArray *flattenedArray = [anArray valueForKeyPath: @"@unionOfArrays.self"];
顺便说一句这个代码将离开中的重复平阵列。如果你想删除重复,使用 distinctUnionOfArrays 而不是的 unionOfArrays.
不隶属于 StackOverflow