Pourquoi quand je code que je peux faire:NSString est vraiment immuable?
NSString *test;
test = @"stack";
test = @"overflow";
sans aucun problème, NSString
est pas censé être immuable?
Pourquoi quand je code que je peux faire:NSString est vraiment immuable?
NSString *test;
test = @"stack";
test = @"overflow";
sans aucun problème, NSString
est pas censé être immuable?
Il est immutable. Vous ne modifiez pas la chaîne sous-jacente avec ces instructions, vous créez/utilisez une nouvelle chaîne. Le pointeur lui-même peut changer aussi souvent que vous le souhaitez, mais ce n'est pas la chaîne.
Et c'est correct de le faire ou c'est la mauvaise façon de manipuler la chaîne. – alex
C'est la bonne façon de le gérer. Chaque fois que vous faites @ "Some Text", vous créez simplement une instance autoreleased de NSString. – peelman
Ok, donc quand vous utilisez NSMutableString si vous pouvez le faire avec NSString, désolé si ma question semble stupide. – alex
L'objet chaîne est immuable. Vous modifiez uniquement le pointeur sur une chaîne différente.
Dans votre code que vous venez « oublier » l'ancienne valeur (pile) et de créer une nouvelle instance de chaîne et le remplir avec « trop-plein » ...
Si elle était déjà mutable, alors pourquoi aurions-nous NSMutableString ? http://developer.apple.com/fr/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableString_Class/Reference/Reference.html – peelman
duplication possible de [Le dernier mot sur NSStrings: Mutable et Immuable] (http : //stackoverflow.com/questions/905396/the-final-word-on-nsstrings-mutable-and-immutable) –