Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The final word on NSStrings: Mutable and Immutable

I've read in several books... and online... about immutable and mutable strings. They claim "immutable strings" can't be changed. (But they never define "change".)

Which of these NSStrings could be changed without using NSMutableString?

The string contains "catfish"... and I later try to change it to "cat". (Same letters, just shorter.)

It contains "cat"... and I try to change it to "catfish". (Similar start... but just made longer.)

I change "cat" into "CAT". (Same letters, but just the case has changed.)

I change "cat" into "dog". (Totally different string, but the same length.)

I change "cat" into "dogwood". (Totally different string, but longer.)

like image 800
Donna Avatar asked May 25 '09 05:05

Donna


1 Answers

The answer is - none. Immutable means it cannot be changed into anything different than the original string. Every character stays the same, the length cannot change, etc. Once it's defined you cannot change anything about that string. If you want to make it longer or shorter or change any of the characters, you need to make a new string (or use a NSMutableString to begin with).

like image 197
Marc Novakowski Avatar answered Nov 13 '22 04:11

Marc Novakowski