Ios 如何修复这个变异错误?
我得到了这个错误: ***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“尝试使用ReplaceCharactersRange:withString:变异不可变对象” 但我不知道我在变异什么样的不可变对象Ios 如何修复这个变异错误?,ios,objective-c,nsmutablestring,Ios,Objective C,Nsmutablestring,我得到了这个错误: ***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“尝试使用ReplaceCharactersRange:withString:变异不可变对象” 但我不知道我在变异什么样的不可变对象 NSRange subRange = [self.label.text rangeOfString: @"="]; int numA = 5; int numB = 3; NSMu
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];
您需要创建一个NSMutableString,如下所示:
[NSMutableString stringWithString: self.label.text];
您的NSMutableString创建调用未正确平衡。您向编译器承诺您正在创建一个NSMutableString,但您要求一个NSString创建一个实例
例如:
NSMutableString*mixed=[NSString stringWithFormat:@%i%i,numA,numB]
需要:
NSMutableString*mixed=[NSMutableString stringWithFormat:@%i%i,numA,numB] 您的NSMutableString实际上是NSString的实例。这是运行时的详细信息,尽管这些行至少应该有一个警告。改为:
NSMutableString *string = [self.label.text mutableCopy];
您的字符串变量不可变,您尝试对其进行变异。重复的