尝试改变不可变对象错误

Ale*_*lex 0 iphone objective-c mutable nsstring ios

我的代码崩溃在这一行:

[(NSMutableString *)string replaceCharactersInRange:range withString:@""];
Run Code Online (Sandbox Code Playgroud)

错误尝试改变不可变对象.

这是怎么回事?我该如何解决?

Ram*_*uri 7

该字符串不可变,强制转换不是魔法,它不会将其转换为可变字符串.你应该在一个可变副本上做到这一点:

NSMutableString* mutableString= [string mutableCopy];
[mutableString replaceCharactersInRange:range withString:@""];
Run Code Online (Sandbox Code Playgroud)

  • "铸造不是魔术"的+1.我倾向于说同样的事情. (2认同)