NSString reemplaza líneas nuevas repetidas con línea única

Tengo un NSString que puede tener múltiples \ n entre la cadena. Necesito replace la ocurrencia múltiple de \ n con una sola \ n.

Probé este código:

 newString = [string stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"]; 

Pero esto no da el resultado deseado si se encuentra una serie de "\ n \ n \ n \ n \ n \ n" en la cadena. En este caso, se replaceán por "\ n \ n \ n".

¿Qué debo hacer para que más de uno "\ n" sea reemplazado por un solo "\ n"?

¡Gracias a todos!

Actualización: Agregar una captura de pantalla para UITextView a la cual la cadena filtrada se configura como text. Las nuevas líneas parecen ser más de una después de escribir el código como lo sugiere Attila H en respuesta. introduzca la descripción de la imagen aquí

Puede usar NSRegularExpression . Esta es la forma más simple y elegante:

 NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\n+" options:0 error:NULL]; NSString *newString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@"\n"]; 

Puedes hacerlo de la siguiente manera

 NSArray *arrSplit = [s componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; s = [arrSplit componentsJoinedByString:@"\n"]; 

Espero que te pueda ayudar …

Puedes poner este reemploop dentro de un bucle hasta que sigas fundando "\ n \ n" en tu cadena.