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 に答える