无法追加String NSMutableString - 错误

时间:2013-11-25 19:21:57

标签: ios nsmutablestring

我有以下代码

NSMutableString *ibmcountryCodeLabel=[[NSMutableString alloc]init];
NSMutableString *imobileNumberValue=[[NSMutableString alloc]init];
ibmcountryCodeLabel=@"555";
imobileNumberValue=@"333";
NSLog(@"Done1");
[ibmcountryCodeLabel appendString:imobileNumberValue];
NSLog(@"Done2");

虽然当我尝试将一个字符串与另一个字符串相加时,字符串都是可变的,但我得到“由于未捕获的异常而终止应用程序'NSInvalidArgumentException',原因:'尝试使用appendString来改变不可变对象:'”

阅读所有主题。但无法找到解决方案。请帮助我。谢谢你的时间

1 个答案:

答案 0 :(得分:3)

问题是:这个赋值产生一个可变的字符串对象:

NSMutableString *ibmcountryCodeLabel=[[NSMutableString alloc]init];

然而,在此赋值之后,ibmcountryCodeLabel指向的对象不再是可变的:

ibmcountryCodeLabel=@"555";

这是因为@"555"常量是NSString的不可变子类。尝试修改它会导致运行时错误。

按如下所示更改代码以解决此问题:

NSMutableString *ibmcountryCodeLabel=[NSMutableString stringWithString:@"555"];
NSMutableString *imobileNumberValue=[NSMutableString stringWithString:@"333"];
相关问题