因未捕获的异常'NSGenericException'而终止应用程序

时间:2014-03-08 14:05:59

标签: ios objective-c exception termination

我的程序运行时,我偶尔会出现错误。大多数时候,应用程序运行正常,但是应用程序会不时崩溃并指向for循环中的第二行说:

由于未捕获的异常'NSGenericException'而终止应用程序,原因:' * 收集在枚举时发生了变异。'

for(int i = 1; i <= 121; i++) {
        NSLog(@"%i", i);
        [(UIButton *)[self.view viewWithTag:i] setImage:[UIImage imageNamed:@"hexagon"] forState:UIControlStateNormal];
}

我该怎么做才能避免我的程序崩溃?

1 个答案:

答案 0 :(得分:0)

在循环遍历数组时,您正尝试更改数组中的项目。

尝试制作子视图的副本以进行循环播放,以便您可以更改原始视图。

NSArray *loopingArray = [self.view.subviews copy];

for (int i = 0; i < [loopingArray count]; i++){

    NSLog(@"%i", i);
    if ([self.view viewWithTag:i])
        [(UIButton *)[self.view viewWithTag:i] setImage:[UIImage imageNamed:@"hexagon"] forState:UIControlStateNormal];
}