Pregunta

Tengo una NSDictionary donde cada puntos clave para una matriz. más adelante quiero combinar todos los valores en una matriz. ¿Hay una manera de utilizar la API de hacer algo más eficiente que, por ejemplo:

NSArray *anArray = [someDictionary allValues];
NSMutableArray *newArray = [NSMutableArray array];
start outter loop on anArray
   start inner loop on objects in anArray
     add objectAtIndex to newArray
¿Fue útil?

Solución

Sólo tiene que utilizar [newArray addObjectsFromArray:anArray];

Otros consejos

Hay una cierta confusión en la respuesta de Benn Gottlieb anteriormente. Para aclarar, que es lo que sugiere el uso de addObjectsFromArray en lugar del bucle interno, mientras que Coocoo es confusa porque piensa que está siendo sugerido como un reemplazo para TODO el bucle. (Si lo hace, que de hecho se quedará con una matriz sin acoplar de matrices como por su objeción.)

Aquí es una solución elegante razonablemente que no requiere ningún bucle explícito:

NSArray *anArray = [someDictionary allValues];
NSArray *flattenedArray = [anArray valueForKeyPath: @"@unionOfArrays.self"];

por cierto este código dejará duplicados en la matriz aplanada. Si desea eliminar duplicados, utilice distinctUnionOfArrays en lugar de unionOfArrays .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top