如何解决这个变异错误?

stu*_*ped 0 objective-c nsmutablestring ios

我收到这个错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to mutate immutable object with replaceCharactersInRange:withString:'

但我无法弄清楚我正在变异的不可变对象.

        NSRange subRange = [self.label.text rangeOfString: @"="];
        int numA = 5;
        int numB = 3;

        NSMutableString *mixed = [NSString stringWithFormat: @"%i %i", numA, numB];

        NSMutableString *string = [NSString stringWithString: self.label.text];

        subRange = [string rangeOfString: @"="];

        if (subRange.location != NSNotFound)
            [string replaceCharactersInRange:subRange withString:mixed];
Run Code Online (Sandbox Code Playgroud)

Jac*_*nce 6

您的NSMutableString创建调用未正确平衡.你承诺你正在创建一个编译器,NSMutableString但是你要求NSString创建一个实例.

例如:

NSMutableString *mixed = [NSString stringWithFormat: @"%i %i", numA, numB];

需要是:

NSMutableString *mixed = [NSMutableString stringWithFormat: @"%i %i", numA, numB];