Либо через:
NSString *immutableString = [NSString stringWithString:yourMutableString];
или через:
NSString *immutableString = [[yourMutableString copy] autorelease];
//Note that calling [foo copy] on a mutable object of which there exists an immutable variant
//such as NSMutableString, NSMutableArray, NSMutableDictionary from the Foundation framework
//is expected to return an immutable copy. For a mutable copy call [foo mutableCopy] instead.
Будучи подклассом NSString, вы можете просто привести его к NSString
NSString *immutableString = yourMutableString;
делая его неизменным, даже если он на самом деле остается изменяемым.
Многие методы фактически возвращают изменяемые экземпляры, несмотря на то, что они объявлены как возвращающие неизменяемые.