更改可变字符串的值

时间:2012-01-28 10:51:35

标签: objective-c

如何更改可变字符串的值?这是我做的事情

NSString *str = @"This is string";

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

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

3 个答案:

答案 0 :(得分:5)

如果您想要更改字符串的部分内容(追加,插入等),您只需要使用NSMutableString,这通常是出于性能原因。

如果你想为字符串变量分配新值,你可以选择一个好的旧NSString,因为你的最后一行简单地将一个完整的新字符串对象分配给str

答案 1 :(得分:2)

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

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

如另一个答案所示,非变异NSString可能足以达到您的目的。

答案 2 :(得分:0)

这是初始化NSMutableString

的方法
NSMutableString *string = [[NSMutableString alloc]init];

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

[string appendString:@"content"];