Me pregunto cómo se convierte un NSArray[@"Apple", @"Pear ", 323, @"Orange"]
a una cadena en Objective-C.NSArray a NSString en Objective-C
Respuesta
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
¿No logrará esto lo mismo que llamar a [array description]? – TechZen
@TechZen - no, porque '[array description]' inserta líneas nuevas y los paréntesis externos. –
¡Esta debería ser la respuesta elegida! – pixelfreak
Un enfoque sería iterar sobre la matriz, calificando el mensaje description
en cada artículo:
NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
[result appendString:[obj description]];
}
NSLog(@"The concatenated string is %@", result);
Otro enfoque sería hacer algo basado en la clase de cada elemento:
NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
if ([obj isKindOfClass:[NSNumber class]])
{
// append something
}
else
{
[result appendString:[obj description]];
}
}
NSLog(@"The concatenated string is %@", result);
Si desea comas y otra información extraña, puede hacer:
NSString * result = [array description];
Si la matriz tiene muchos elementos, podría ser más eficiente convertir primero todos los elementos en cadenas (probablemente usando '-description') y luego concatenarlos usando' -componentsJoinedByString: 'con' @ "' 'como parámetro. –
Me gustaría ir con este método sobre el de Dave Delong a menos que solo esté depurando. – TechZen
poco encontré un muy buen tutorial sobre Objective-C Cuerdas:
http://ios-blog.co.uk/tutorials/objective-c-strings-a-guide-for-beginners/
y pensé que esto podría ser de interés:
Si desea dividir la cadena en una matriz utilizar un método llamado componentsSeparatedByString para lograrlo:
NSString *yourString = @"This is a test string";
NSArray *yourWords = [myString componentsSeparatedByString:@" "];
// yourWords is now: [@"This", @"is", @"a", @"test", @"string"]
si es necesario dividir en un conjunto de varios charact diferente ERS, utilice componentsSeparatedByCharactersInSet de NSString:
NSString *yourString = @"Foo-bar/iOS-Blog";
NSArray *yourWords = [myString componentsSeparatedByCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@"-/"]
];
// yourWords is now: [@"Foo", @"bar", @"iOS", @"Blog"]
Nota sin embargo que la cadena de separación no puede estar en blanco. Si es necesario separar una cadena en sus caracteres individuales, solo bucle a través de la longitud de la cadena y convertir cada carbón en una nueva cadena:
NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[myString length]];
for (int i=0; i < [myString length]; i++) {
NSString *ichar = [NSString stringWithFormat:@"%c", [myString characterAtIndex:i]];
[characters addObject:ichar];
}
NSString * str = [componentsJoinedByString:@""];
y tiene variedad DIC o múltiple a continuación, utiliza abajo
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
creo que la respuesta de Sanjay estaba casi allí, pero he usado de esta manera
NSArray *myArray = [[NSArray alloc] initWithObjects:@"Hello",@"World", nil];
NSString *greeting = [myArray componentsJoinedByString:@" "];
NSLog(@"%@",greeting);
Salida:
2015-01-25 08:47:14.830 StringTest[11639:394302] Hello World
Como Sanjay había insinuado - Me utilizado método componentsJoinedByString de NSArray que no unirse y le da la espalda NSString
Por cierto NSString tiene método inverso componentsSeparatedByString que hace el dividir y le da NSArray atrás.
La manera que conozco es fácil.
var NSArray_variable = NSArray_Object[n]
var stringVarible = NSArray_variable as String
n
es la posición interior en la matriz Esto a SWIFT Language. Podría funcionar en C Objetivo
Swift solución 3,0:
let string = array.joined(separator: ",")
NSArray *array = [NSArray arrayWithObjects:@"One",@"Two",@"Three", nil];
NSString *stringFromArray = [array componentsJoinedByString:@" "];
La primera línea inicializa una matriz con objetos. La segunda línea une todos los elementos de esa matriz al agregar la cadena dentro de "" y devuelve una cadena.
Si bien este código puede responder a la pregunta, proporcionar un contexto adicional con respecto a por qué y/o cómo responde este código a la pregunta mejora su valor a largo plazo. –
¡Gracias por su consejo, sinceramente! –
- 1. NSString a NSArray
- 2. NSArray y NSString
- 3. Cómo convertir NSArray en NSString
- 4. Cómo dividir la nueva línea de NSString en ObjectiveC
- 5. Cómo unir elementos NSArray en un NSString?
- 6. NSArray independiente a una lista de objetos de tipo NSString
- 7. ObjectiveC Parse Integer from String
- 8. iOS4 UIImagePickerController no admite mediaTypes = [NSArray arrayWithObject: (NSString *) kUTTypeMovie]?
- 9. Pasando de JSON a NSArray
- 10. Cómo convertir NSNumber a NSString
- 11. Bloques ObjectiveC equivalente en Java
- 12. NSDiccionario a NSArray?
- 13. Cómo convertir NSUrl a NSString?
- 14. Cómo agregar un NSString a otro NSString
- 15. enviar una notificación desde javascript en UIWebView a ObjectiveC
- 16. ¿Invertir una preocupación NSArray?
- 17. uso de NSString estático frente a constantes NSString en línea
- 18. NSArray writeToFile falla
- 19. NSArray de objetos y Casting
- 20. Matriz de ordenación (NSArray) en orden descendente
- 21. objectivec: fb publicar comentario error
- 22. Separación de NSString en NSArray, pero permitiendo cotizaciones para agrupar palabras
- 23. ObjectiveC que pasa alrededor ... nula terminado listas de argumentos
- 24. Simple: objeto NSArray a Doble?
- 25. Cómo convertir CFArrayRef a NSArray?
- 26. NSMutableArray a NSArray en C objetiva
- 27. ¿Cómo comprobar si un NSString contiene uno de los NSStrings en un NSArray?
- 28. ¿Cómo puedo verificar si un NSString particular está presente en un NSArray?
- 29. Cómo convertir NSArray a NSMutableArray
- 30. Conversión de NSArray a NSMutableArray
[Convertir NSString separado por coma a NSArray] (http://stackoverflow.com/a/8204215/194544) – beryllium
@beryllium Esa pregunta fue hecha dos años * después de mi pregunta. – alexy13