如何更改可变字符串的值?这是我做的事情
NSString *str = @"This is string";
NSMutableString *str = [NSMutableString stringWithFormat:@"%@", str];
str = @"New string" -> wrong incompatible pointer types assigning to NSMutableString from NSString
答案 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"];