你能帮我解决以下错误吗:
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“-[__NSCFArray replaceObjectAtIndex:withObject:]: mutating method sent to immutable object”
array_Info = [[NSMutableArray alloc] init];
array_Info = [dict_Temp objectForKey:@"Children"];
NSMutableArray *temp = [[NSMutableArray alloc] initWithArray:self.array_Info];
int ran, arrayIndexing = 0;
while ([temp count] != 0)
{
ran = arc4random();
if(ran < 0)
ran*=-1;
ran = ran % [temp count];
if([temp count] == 1)
ran = 0;
NSLog(@"%d %d",arrayIndexing,ran);
[self.array_Info replaceObjectAtIndex:arrayIndexing withObject:[temp objectAtIndex:ran]];
[temp removeObjectAtIndex:ran];
arrayIndexing++;
}
最佳答案
假设 array_Info
是 self.array_Info
的支持变量属性,您应该将第二行更改为:
array_Info = [[dict_Temp objectForKey:@"Children"] mutableCopy];
这将为您提供
replaceObjectAtIndex:withObject:
所需的可变数组称呼。
关于iphone - NSInternalInconsistencyException 原因 : '-[__NSCFArray replaceObjectAtIndex:withObject:]: mutating method sent to immutable object' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15979862/