2009-08-30 1 views
5

Questo è un po 'di confusione. NSMutableString eredita da NSString, ma ciò significa anche che posso passare una NSMutableString ovunque in sicurezza dove effettivamente è necessaria una NSString? E posso assegnare una NSString a una NSMutableString? Come posso ottenere una NSString da una NSMutableString per evitare problemi, se ce ne sono?Come rimuovere una NSString da una NSMutableString?

risposta

17
  1. Sì, è possibile passare un NSMutableString per NSString. Tuttavia, tieni presente che se l'oggetto lo passi per memorizzare un riferimento a questo oggetto, "vedrà" tutte le modifiche apportate all'oggetto stringa mutabile. Questo non è sempre auspicabile.

  2. No, non possibile. Se si dispone di un puntatore NSMutableString che punta a uno NSString e si chiama, ad esempio, appendString: su di esso, l'oggetto non saprebbe come elaborare la chiamata.

    (i primi due sono OO basi inclusione polimorfismo)

  3. Se si desidera ottenere una stringa non mutabile da uno mutabile, utilizzare [mutableString copy].