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?
5
A
risposta
17
Sì, è possibile passare un
NSMutableString
perNSString
. 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.No, non possibile. Se si dispone di un puntatore
NSMutableString
che punta a unoNSString
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)
Se si desidera ottenere una stringa non mutabile da uno mutabile, utilizzare
[mutableString copy]
.