我有一个 NSMutableString,如何将其转换为 NSString?
问问题
50392 次
2 回答
104
要么通过:
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;
使它看起来不可变,即使它实际上是可变的。
尽管声明返回不可变实例,但许多方法实际上返回可变实例。
于 2011-04-07T15:23:15.137 回答
4
NSMutableString
是 的子类NSString
,因此您可以对其进行类型转换:
NSString *string = (NSString *)mutableString;
在这种情况下,string
将是 的别名mutalbeString
,但如果您尝试对其调用任何可变方法,编译器会报错。
此外,您可以使用类方法创建一个新的 NSString:
NSString *string = [NSString stringWithString:mutableString];
于 2011-04-07T15:27:43.147 回答