objective-c nsstring nsmutablestring

objective c - Objetivo C: convertir un NSMutableString en NSString



objective-c (2)

Tengo un NSMutableString, ¿cómo puedo convertirlo a un NSString?


Ya sea a través de:

NSString *immutableString = [NSString stringWithString:yourMutableString];

o vía:

NSString *immutableString = [[yourMutableString copy] autorelease]; //Note that calling [foo copy] on a mutable object of which there exists an immutable variant //such as NSMutableString, NSMutableArray, NSMutableDictionary from the Foundation framework //is expected to return an immutable copy. For a mutable copy call [foo mutableCopy] instead.

Siendo una subclase de NSString, puedes simplemente convertirlo a un NSString

NSString *immutableString = yourMutableString;

haciendo que parezca inmutable, a pesar de que de hecho permanece mutable.
Muchos métodos realmente devuelven instancias mutables a pesar de ser declaradas para devolver las inmutables.


NSMutableString es una subclase de NSString , por lo que podría simplemente encasillarlo:

NSString *string = (NSString *)mutableString;

En este caso, la string sería un alias de mutalbeString , pero el compilador se quejaría si intentara llamar a cualquier método mutable.

Además, podría crear un nuevo NSString con el método de clase:

NSString *string = [NSString stringWithString:mutableString];