试图改变不可变的对象错误
我的代码崩溃在这一行:
[(NSMutableString *)string replaceCharactersInRange:range withString:@""];
用错误尝试来改变不可变的对象。
这是怎么发生的,我该如何解决?
该string不可变,铸造不是魔术,它不会变成一个可变的string。 你应该做一个可变的副本:
NSMutableString* mutableString= [string mutableCopy]; [mutableString replaceCharactersInRange:range withString:@""];
你正在types化一个不可变的string,然后改变它,实际上这没有发生。
你需要创build一个新的NSMutableString,然后使用replaceCharactersInRange
…
NSMutableString *mutableString=[NSMutableString stringWithString:string]; [mutableString replaceCharactersInRange:range withString:@""];
如果你想在同一个对象的结果设置它的string。
string=mutableString;