Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 尝试变异不可变对象时出错_Objective C_Nsmutablestring - Fatal编程技术网

Objective c 尝试变异不可变对象时出错

Objective c 尝试变异不可变对象时出错,objective-c,nsmutablestring,Objective C,Nsmutablestring,这个错误是什么?我使用可变类型,但它仍然不工作 错误是: 由于未捕获异常而终止应用程序 “NSInvalidArgumentException”,原因:“突变不可变” 对象的DeleteCharactersRange:' 我的新答案是: 对于您的新代码,我在末尾额外添加了一行: NSMutableString *line= [NSMutableString stringWithString:@"here is the string"]; [line deleteCharactersInRange

这个错误是什么?我使用可变类型,但它仍然不工作

错误是:

由于未捕获异常而终止应用程序 “NSInvalidArgumentException”,原因:“突变不可变” 对象的DeleteCharactersRange:'

我的新答案是:

对于您的新代码,我在末尾额外添加了一行:

NSMutableString *line= [NSMutableString stringWithString:@"here is the string"];
[line deleteCharactersInRange: NSMakeRange(1,9 )];
NSLog( @"line is %@", line );
控制台输出为:

2011-11-25 06:08:13.248 TestingCommandLine[13324:903] line is he string
没有引发异常。看起来对我有用

我对你的原始问题的原始答案:

不能从没有任何内容的行中删除字符,因此出现异常


在这两行源代码之间有其他代码吗?如果不是,则您有一个有效的NSMutableString。。。里面什么都没有。你不能从一个没有任何内容的可变字符串中删除任何内容

如果您的代码与此处引用的代码完全相同,那么问题在于您试图从空字符串中删除某些内容。但由于没有可以删除的内容,因此这是一个错误。

异常名称很清楚:无效参数。您所做的是创建一个空的可变字符串,然后尝试删除超出限制范围1..9的字符。此函数不允许超出范围:它引发异常。
为什么写评论行有价值!?您是在您发布的两行代码之间生成的吗?

您修改后的代码对我很有用。这对你还是不起作用吗?
2011-11-25 06:08:13.248 TestingCommandLine[13324:903] line is he string