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];