Tengo un NSMutableString, ¿cómo puedo convertirlo a un NSString?Objetivo C: convertir un NSMutableString en NSString
Respuesta
De cualquier vía:
NSString *immutableString = [NSString stringWithString:yourMutableString];
o por medio de:
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.
ser una subclase de NSString sin embargo sólo se puede echar a un NSString
NSString *immutableString = yourMutableString;
haciendo que parezca inmutable, a pesar de que, de hecho, se mantiene mutable.
Muchos métodos realmente devuelven instancias mutables a pesar de ser declaradas para devolver las inmutables.
¡Buena respuesta! Para la última solución, no necesita encasillar, ya que NSMutableString hereda de NSString y siempre puede asignar el tipo de una subclase a un tipo del que hereda sin quejarse el compilador. – Senseful
Punto válido. No sé por qué agregué eso. Fijo. – Regexident
@Regexident me puede decir. si simplemente devuelven 'NSString' (de hecho es' NSMutableString' entonces cuando el usuario modifica el objeto 'NSString', ellos no saben que el objeto en sí será cambiado, ¿no? Así que ¿este trabajo devolverá algún efecto secundario? Gracias :) – hqt
NSMutableString
es una subclase de NSString
, por lo que sólo podría encasillarse que:
NSString *string = (NSString *)mutableString;
En este caso, string
sería un alias de mutalbeString
, pero el compilador podría quejarse si se trató de llamar a cualquiera de los métodos mutables en eso.
Además, se podría crear una nueva NSString con el método de la clase:
NSString *string = [NSString stringWithString:mutableString];
me puedes decir. si simplemente devuelven NSString (de hecho es NSMutableString, entonces cuando el usuario modifica el objeto NSString, no saben que el objeto en sí mismo se cambiará, ¿no es así? ¿Entonces este trabajo devolverá algún efecto secundario?Gracias :) – hqt
Pero si hay un cambio en la cadena mutable subyacente (a través de la variable mutableString, ¿cambiará de hecho el valor subyacente de la cadena inmutable? Si ambos son punteros al mismo objeto, parece que tendría a. –
- 1. ¿Cómo convierto un NSMutableString en un NSString normal?
- 2. Cómo sacar un NSString de un NSMutableString?
- 3. Objetivo C const NSString * vs NSString * const
- 4. ¿Número de caracteres en NSString o NSMutableString?
- 5. Objetivo-c: NSString es posible enumerar los
- 6. Objetivo C Convert int a NSString (iPhone)
- 7. Datos confidenciales: NSString VS NSMutableString (iPhone)
- 8. Cómo convertir un NSString en valores hexadecimales
- 9. Objetivo C ==> unichar [] a NSString?
- 10. Convertir un objetivo c objeto iOS a una cadena JSON
- 11. Forma simple de reemplazar partes de NSMutableString/NSString
- 12. Objetivo C: ¿Reemplazar parte de la cadena en NSString?
- 13. Cómo convertir NSArray en NSString
- 14. ¿Cómo convertir NSString a C string?
- 15. ¿Cómo convertir un NSString en NSDate?
- 16. Constante en objetivo-c
- 17. Posición de un carácter en NSSumber o NSMutableString
- 18. Objetivo C NSString * propiedad de retener rareza recuento
- 19. Cacao: NSMutableString avisa con stringValue
- 20. Cadena para flotar en el objetivo c
- 21. objetivo de conversión para c NSString a NSDecimalNumber
- 22. convertir NSDictionary a NSString
- 23. Convertir char a NSString
- 24. Convertir NSDate a NSString
- 25. Cómo convertir HEX a NSString en Objective-C?
- 26. cómo convertir Float64 a NSString en iOS
- 27. iPhone convertir NSString a un error NSURL
- 28. Selectores en el objetivo C
- 29. de caracteres UTF8 decodificación en C Objetivo
- 30. Objetivo C. sintaxis extraño
Desde su reciente historial de preguntas (de hoy) parece que se debe obtener su mano uno un libro digno de cacao para obtener una idea básica de cómo funcionan las cosas en ObjC-world. Los libros de Aaron Hillegass son un muy buen comienzo. También consulte http://cocoadevcentral.com/. Más aún: publicando media docena de versiones ligeramente diferentes de, básicamente, la misma pregunta (String-> CSV), de la cual esta pregunta creo que también está relacionada, no le ayudará mucho. . Simplemente estás enviando spam SO y haciendo que la gente eventualmente ignore tus preguntas. – Regexident
En su lugar, debería ir y proporcionar más información para su pregunta inicial si las respuestas proporcionadas no lo ayudaron a usted y las personas intentarán brindarle respuestas más correctas. Una vez que una respuesta resolvió su problema, déle un voto positivo y haga clic en la marca de verificación verde para aceptarlo. De esta forma, otros usuarios con el mismo problema pueden encontrar soluciones validadas mucho, mucho más fáciles y se lo agradecerán más adelante. También aumenta tus posibilidades de obtener respuestas en primer lugar;) – Regexident
sí, tienes razón, lo siento ... intentaré ser menos opresivo – CrazyDev