2009-08-30 10 views
5

Eso es algo confuso. NSMutableString hereda de NSString, pero ¿eso también significa que puedo pasar un NSMutableString a cualquier lugar con seguridad donde realmente se quiere un NSString? ¿Y puedo asignar un NSString a un NSMutableString? ¿Cómo obtendría un NSString de un NSMutableString para evitar problemas, si hubiera alguno?Cómo sacar un NSString de un NSMutableString?

Respuesta

17
  1. Sí, se puede pasar un NSMutableString para una NSString. Sin embargo, tenga en cuenta que si el objeto donde lo pasa almacena una referencia a este objeto, "verá" todos los cambios que realice en el objeto de cadena mutable. Esto no siempre es deseable.

  2. No, no es posible. Si tenía un puntero NSMutableString apuntando a un NSString y lo llamaba, por ejemplo, appendString:, el objeto no sabría cómo procesar la llamada.

    (los dos primeros son OO fundamentos de polimorfismo de inclusión)

  3. Si desea obtener una cadena no mutable de una mutable, utilice [mutableString copy].

Cuestiones relacionadas