Convierta NSArray a NSString en Objective-C

Me pregunto cómo convertir un NSArray [@"Apple", @"Pear ", 323, @"Orange"] en una cadena en Objective-C .

 NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""]; 

Un enfoque sería iterar sobre la matriz, llamando al mensaje de description en cada elemento:

 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 lo siguiente:

 NSString * result = [array description]; 

Creo que la respuesta de Sanjay casi estaba allí, pero la usé 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, utilicé los componentes del métodoJoinedByString de NSArray que se une y te devuelve NSString

BTW NSString tiene el método inverso componentsSeparatedByString que divide y le devuelve NSArray .

Recientemente encontré un buen tutorial sobre Objective-C Strings:

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, utilice un método llamado componentsSeparatedByString para lograr esto:

 NSString *yourString = @"This is a test string"; NSArray *yourWords = [myString componentsSeparatedByString:@" "]; // yourWords is now: [@"This", @"is", @"a", @"test", @"string"] 

si necesita dividir en un conjunto de varios caracteres diferentes, use los componentes de NSStringSeparatedByCharactersInSet:

 NSString *yourString = @"Foo-bar/iOS-Blog"; NSArray *yourWords = [myString componentsSeparatedByCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"-/"] ]; // yourWords is now: [@"Foo", @"bar", @"iOS", @"Blog"] 

Sin embargo, tenga en cuenta que la cadena del separador no puede estar en blanco. Si necesita separar una cadena en sus caracteres individuales, simplemente recorra la longitud de la cadena y convierta cada carácter 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 tienes una matriz dic o múltiple y luego la utilizas abajo

 NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""]; 
 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.

La forma en que sé es fácil.

 var NSArray_variable = NSArray_Object[n] var stringVarible = NSArray_variable as String 

n es la posición interna en la matriz Esto en SWIFT Language. Podría funcionar en Objective C

Solución Swift 3.0:

 let string = array.joined(separator: ",")