我有一个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.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top