Why should someone ever use the non-NSMutable equivalents of the data structures in Objective-C? When it’s a situation when you need a const object that should not be modified? Does using non-NSMutable classes improve performance in any way? Any other situations?
Why should someone ever use the non-NSMutable equivalents of the data structures in Objective-C?
Share
The two main reasons off the top of my head:
You also tend to see arguments in favour of the inherent preservation of the original value being useful, especially in terms of semantics and design patterns.
Immutable classes don’t tend to be much more efficient in and of themselves with one exception — if you take an immutable copy of a mutable array, for example, then it’s clear exactly how much storage is needed and exactly that much can be allocated. Because memory allocation costs time, mutable collections tend to keep some spare storage around because they can’t predict how they’re going to grow.