Eliminando espacios múltiples en NSString

Tengo un NSString , esto tiene múltiples espacios, quiero recortar esos espacios y crear un solo espacio para, por ejemplo, "cómo están … estás" en "cómo estás". los puntos son simplemente espacios)

He intentado con

 NSString *trimmedString = [user_ids stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; 

No parece funcionar. Alguna idea.

Puede usar una expresión regular para lograr esto:

 NSError *error = nil; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@" +" options:NSRegularExpressionCaseInsensitive error:&error]; 

El patrón es un espacio seguido por una o más apariciones de espacio. Reemplaza esto con un solo espacio en tu cadena:

 NSString *trimmedString = [regex stringByReplacingMatchesInString:user_ids options:0 range:NSMakeRange(0, [user_ids length]) withTemplate:@" "]; 

Esto funcionó cuando lo probé:

 NSString *trimmedString = @"THIS IS A TEST S STRING SDDF "; while ([trimmedString rangeOfString:@" "].location != NSNotFound) { trimmedString = [trimmedString stringByReplacingOccurrencesOfString:@" " withString:@" "]; } NSLog(@"%@", trimmedString); 

user1587011

 NSString *trimmedString = [user_ids stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; 

este método de cadena se utiliza para eliminar espacios al principio y al final de una cadena.

Prueba esto, te da lo que quieres:

 NSString *theString = @" Hello this is a long string! "; NSCharacterSet *whitespaces = [NSCharacterSet whitespaceCharacterSet]; NSPnetworkingicate *noEmptyStrings = [NSPnetworkingicate pnetworkingicateWithFormat:@"SELF != ''"]; NSArray *parts = [theString componentsSeparatedByCharactersInSet:whitespaces]; NSArray *filtenetworkingArray = [parts filtenetworkingArrayUsingPnetworkingicate:noEmptyStrings]; theString = [filtenetworkingArray componentsJoinedByString:@" "]; 
 NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\s{2,}+" options:NSRegularExpressionCaseInsensitive error:&error]; user_ids = [regex stringByReplacingMatchesInString:user_ids options:0 range:NSMakeRange(0, [s length]) withTemplate:@" "]; 

Código Swift 3 de la respuesta seleccionada

 let regex = try? NSRegularExpression(pattern: " +", options: .caseInsensitive) let trimmedString: String? = regex?.stringByReplacingMatches(in: user_ids, options: [], range: NSRange(location: 0, length: user_ids.characters.count), withTemplate: " ") 
 NSString* NSStringWithoutSpace(NSString* string) { return [string stringByReplacingOccurrencesOfString:@" " withString:@""]; } 

puedes usar:

 NSString *trimmedString = [user_ids stringByReplacingOccurrencesOfString: @" " withString:@""];