目标C:在NSString中转换一个NSMutableString

我有一个NSMutableString,我怎么能把它转换成NSString?

通过以下途径:

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; 

使它看起来是不变的,即使它实际上是可变的。
许多方法实际上返回可变实例,尽pipe被声明为返回不可变的实例。

NSMutableStringNSString一个子类,所以你只需要对它进行types转换:

 NSString *string = (NSString *)mutableString; 

在这种情况下, string将是mutalbeString的别名,但是如果您试图调用任何可变方法,编译器就会抱怨。

另外,您可以使用类方法创build一个新的NSString:

 NSString *string = [NSString stringWithString:mutableString]; 
Interesting Posts