Objective c 更改可变字符串的值

Objective c 更改可变字符串的值,objective-c,Objective C,如何更改可变字符串的值?我就是这么做的 NSString *str = @"This is string"; NSMutableString *str = [NSMutableString stringWithFormat:@"%@", str]; str = @"New string" -> wrong incompatible pointer types assigning to NSMutableString from NSString 这是初始化NSMutableString

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

NSString *str = @"This is string";

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

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

这是初始化
NSMutableString
的方法:

NSMutableString *string = [[NSMutableString alloc]init];
您可以使用中指定的任何其他方式。按照您的方式,您没有创建任何
NSMutableString
类的实例。然后,如果要向其中添加一些字符串:

[string appendString:@"content"];

如果要更改字符串的某些部分(追加、插入等),通常出于性能原因,只需使用
NSMutableString


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

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

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

如另一个答案所示,一个不可变的
NSString
可能就足够了。

如何在连续的行中声明两个同名变量?根据文档,
NSMutableString
还有许多其他初始值设定项。