NSString de NSArray

Estoy intentando crear un String de Array. Pero, hay una condición para cómo se debe generar, como se explica a continuación.

NSArray *array=[NSArray arrayWithObjects:@"Hello",@"World",nil]; [array componentsJoinedByString:@","]; 

Esto generará: Hola, Mundo.

Pero, si el primer elemento está vacío, entonces hay manera de recibir el único segundo.

  1. Hola, @ "" => Hola
  2. @ "", Mundo => Mundo
  3. Hola, Mundo => Hola, Mundo

Otra forma de hacerlo es agarrar una copy mutable de la matriz y simplemente eliminar objects no válidos. Algo como esto:

 NSMutableArray *array = [[NSArray arrayWithObjects:@"",@"World",nil] mutableCopy]; [array removeObject:@""]; // Remove empty strings [array removeObject:[NSNull null]]; // Or nulls maybe NSLog(@"%@", [array componentsJoinedByString:@","]); 

No puede almacenar valores nil en NSArray * , por lo que la respuesta es "no". Debe repetir la matriz usted mismo, haciendo un seguimiento de si necesita agregar una coma o no.

 NSMutableString *res = [NSMutableString string]; BOOL first = YES; for(id item in array) { if (id == [NSNull null]) continue; // You can optionally check for item to be an empty string here if (!first) { [res appendString:@", "]; } else { first = NO; } [res appendFormat:@"%@", item]; } 


* Los valores nil en las collections NS se representan con objects NSNull .