Reemplazo de cadena en Objective-C

¿Cuál es la mejor manera de reemplazar un personaje por una cadena en Objective-C para iPhone SDK?

NSString objetos NSString son inmutables (no se pueden cambiar), pero hay una subclase mutable, NSMutableString , que le ofrece varios métodos para reemplazar caracteres dentro de una cadena. Probablemente sea tu mejor opción.

Si quieres múltiples cadenas de reemplazo:

 NSString *s = @"foo/bar:baz.foo"; NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"/:."]; s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""]; NSLog(@"%@", s); // => foobarbazfoo 

También es posible reemplazar cadenas con stringByReplacingCharactersInRange: withString:

 for (int i = 0; i < card.length - 4; i++) { if (![[card substringWithRange:NSMakeRange(i, 1)] isEqual:@" "]) { NSRange range = NSMakeRange(i, 1); card = [card stringByReplacingCharactersInRange:range withString:@"*"]; } } //out: **** **** **** 1234 

El problema existe en versiones anteriores en iOS. en la última, la derecha-izquierda funciona bien. Lo que hice fue lo siguiente:

primero compruebo la versión de iOS:

 if (![self compareCurVersionTo:4 minor:3 point:0]) 

Que:

 // set RTL on the start on each line (except the first) myUITextView.text = [myUITextView.text stringByReplacingOccurrencesOfString:@"\n" withString:@"\u202B\n"]; 
 NSString *stringreplace=[yourString stringByReplacingOccurrencesOfString:@"search" withString:@"new_string"];