Dado un NSArray de NSStrings, ¿hay una manera rápida de unirlos en un solo NSString (con un separador)?Cómo unir elementos NSArray en un NSString?
Respuesta
NSArray * stuff = /* ... */;
NSString * combinedStuff = [stuff componentsJoinedByString:@"separator"];
Esto es el contrario de -[NSString componentsSeparatedByString:]
.
oh por amor a la verbosidad ... – Claudiu
-componentsJoinedByString:
en NSArray debería hacer el truco.
Hay también esta variante, si su matriz original contiene objetos de valor-clave desde el que sólo desea obtener una propiedad (que se puede serializar como una cadena):
@implementation NSArray (itertools)
-(NSMutableString *)stringByJoiningOnProperty:(NSString *)property separator:(NSString *)separator
{
NSMutableString *res = [@"" mutableCopy];
BOOL firstTime = YES;
for (NSObject *obj in self)
{
if (!firstTime) {
[res appendString:separator];
}
else{
firstTime = NO;
}
id val = [obj valueForKey:property];
if ([val isKindOfClass:[NSString class]])
{
[res appendString:val];
}
else
{
[res appendString:[val stringValue]];
}
}
return res;
}
@end
Hay una pérdida de memoria en tu código, mutableCopy retiene el objeto que está copiando, por lo tanto, deberías hacer [return autorelease] al final. Además, no hay ninguna razón para hacer mutablecopy en lugar de simplemente hacer una cadena de mútales directamente desde el principio. – thewormsterror
@thewormsterror: olvidé mencionar que este código era para ARC. Además, la llamada de mutablecopy es la convención moderna de objetivo-c para crear una versión mutable de objetos usando @ -syntax (como [@ [] mutablecopy] para un nsarray mutable). No sé qué diferencia hace que el rendimiento sea sabio. –
- 1. Cómo convertir NSArray en NSString
- 2. NSString a NSArray
- 3. NSArray y NSString
- 4. NSArray a NSString en Objective-C
- 5. Filtrando elementos de cadena NSArray
- 6. Agregar elementos NSArray
- 7. En ARC, ¿cómo puedo liberar los elementos en un NSArray?
- 8. Unir un NSArray de objetos en una cadena, pero es necesario que pueda especificar la propiedad
- 9. ¿Cómo contar la cantidad de elementos en un NSArray?
- 10. ¿Cómo comprobar si un NSString contiene uno de los NSStrings en un NSArray?
- 11. ¿Cómo puedo verificar si un NSString particular está presente en un NSArray?
- 12. permutaciones Generación de elementos NSArray
- 13. ¿Cómo puedo unir elementos nuevos usando knockout?
- 14. cómo ordenar un NSArray usando compare: opciones
- 15. ¿Cómo extiendo un NSArray?
- 16. NSArray independiente a una lista de objetos de tipo NSString
- 17. ¿Cómo obtengo cada línea de un NSString?
- 18. iOS4 UIImagePickerController no admite mediaTypes = [NSArray arrayWithObject: (NSString *) kUTTypeMovie]?
- 19. Cómo agregar un NSString a otro NSString
- 20. Cómo almacenar un NSArray en un NSDictionary?
- 21. SQL - Unir dos tablas y contar elementos
- 22. Extraiga un rango de NSArray
- 23. ¿Cómo recuperar un índice de un NSArray utilizando un NSPredicate?
- 24. ¿Cómo ordenar un NSArray alfabéticamente?
- 25. Obtener un NSArray de un solo atributo de un NSArray
- 26. Separación de NSString en NSArray, pero permitiendo cotizaciones para agrupar palabras
- 27. ¿Cómo puedo llenar un NSArray dinámicamente?
- 28. Cómo cortar un NSArray en Objective-C?
- 29. Inserte NSArray en un NSDictionary
- 30. Cómo obtener un solo carácter NSString de un NSString
que debe ser ciego! o cansado o ambos ... – hop
Si busca los documentos de NSString para esto, nunca lo encontrará. ¡Está en NSArray! – bolnad