2012-01-28 10 views
2

可変文字列の値を変更するにはどうすればよいですか?ここで私は可変文字列の値を変更する

NSString *str = @"This is string"; 

NSMutableString *str = [NSMutableString stringWithFormat:@"%@", str]; 

str = @"New string" -> wrong incompatible pointer types assigning to NSMutableString from NSString 
+3

どのように連続した行に同じ名前の2つの変数を宣言できますか? – samfisher

答えて

5

あなただけが(追加、などを挿入する)代わりに文字列の一部を変更したい場合は、多くの場合、パフォーマンス上の理由から、NSMutableStringを使用する必要があります。

0

を何これはNSMutableStringを初期化する方法です。

NSMutableString *string = [[NSMutableString alloc]init]; 

あなたはdocsに指定された他の方法を使用することができます。あなたがそれをやっている方法では、あなたはNSMutableStringクラスのインスタンスを作成していません。あなたはそれにいくつかの文字列を追加したい場合はその後、:

[string appendString:@"content"]; 
+0

docsによると、 'NSMutableString'には他の多くのイニシャライザもあります。 – Costique

2

あなたが交換するsetStringを使用することができます。

あなたは、文字列変数に新しい値を割り当てたい場合は、あなたがあなたの最後の行のシンプルなど、古き良きNSStringで罰金だがstrへの完全な新しい文字列オブジェクトを割り当て文字列全体:別の答えに示すように

NSString *str = @"This is string"; 
NSMutableString *mutableStr = [NSMutableString stringWithFormat:@"%@", str]; 
... 
[mutableStr setString:@"a different non mutable string"]; 

、非可変NSStringがあなたの目的のためには十分かもしれません。