我有一个NSMutableString,如何将其转换为NSString?
答案 0 :(得分:93)
通过:
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;
使它看起来不可变,即使它实际上仍然是可变的 尽管声明返回不可变的实例,但许多方法实际上返回了可变实例。
答案 1 :(得分:3)
NSMutableString
是NSString
的子类,因此您可以对其进行类型转换:
NSString *string = (NSString *)mutableString;
在这种情况下,string
将是mutalbeString
的别名,但如果您尝试在其上调用任何可变方法,编译器会抱怨。
此外,您可以使用类方法创建新的NSString:
NSString *string = [NSString stringWithString:mutableString];