【发布时间】:2026-01-07 22:20:05
【问题描述】:
我不确定当我以某种方式运行程序时为什么会出现此错误。
2014-05-15 16:19:28.932 Puzzle[1002:f803] *** WebKit discarded an uncaught exception in the webView:shouldInsertText:replacingDOMRange:givenAction: delegate: <NSInternalInconsistencyException> -[__NSCFArray replaceObjectAtIndex:withObject:]: mutating method sent to immutable object
我有一个名为“levelsCompleteArray”的 NSMutableArray,我试图循环查看第一个 NO(或 0)何时出现,并将该迭代设置为一个名为“picIndex”的变量。如果数组中没有“是”,则程序可以正常工作。但是,当下一次迭代中有一个时,我会收到上面发布的消息。有谁知道为什么?代码如下:
[levelsCompleteArray replaceObjectAtIndex:picIndex withObject:[NSNumber numberWithBool:YES]];
BOOL wonLevel=NO;
int i=picIndex;
while (wonLevel==NO)
{
BOOL status =[[levelsCompleteArray objectAtIndex:i] boolValue];
if (status==1)
{
i=i+1;
if(i==3)
{
picIndex=0;
wonLevel=YES;
}
}
else
{
picIndex=i;
wonLevel=YES;
}
}
【问题讨论】:
-
猜猜看。
levelsCompleteArray是不可变的。当我们这样做的时候,清除那个xcode标签。这无关紧要。
标签: arrays object methods mutable