2012-01-28 77 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

如何在连续行中声明两个具有相同名称的变量? – samfisher 2012-01-28 11:06:06

回答

5

你只需要使用NSMutableString,如果你想改变部分字符串到位(追加,插入等),经常进行性能方面的原因。

如果你想新的值赋给字符串变量,你没事带好老NSString作为最后一行的简单分配一个完整的新的字符串对象str

0

这是你应该如何初始化NSMutableString

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

你可以使用在docs指定的任何其他方式。你这样做的方式,你没有创建NSMutableString类的任何实例。然后,如果你想一些字符串添加到它:

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

根据文档,'NSMutableString'也有很多其他的初始化器。 – Costique 2012-01-28 11:10:15

2

您可以使用setString更换整个字符串:

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

作为另一个答复中指出,非可变NSString可能足以满足您的需要。