目标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被声明为返回不可变的实例。
NSMutableString
是NSString
一个子类,所以你只需要对它进行types转换:
NSString *string = (NSString *)mutableString;
在这种情况下, string
将是mutalbeString
的别名,但是如果您试图调用任何可变方法,编译器就会抱怨。
另外,您可以使用类方法创build一个新的NSString:
NSString *string = [NSString stringWithString:mutableString];