这类错是因为:
当程序出现这个提示的时候,是因为你一边便利数组,又同时修改这个数组里面的内容,导致崩溃。此时我们可以采用block遍历里的stop解决。通过满足条件后,暂停循环再删除数组里的元素:
错误代码:
for (UISwitch * tempswitch in self.switchArr) {
if (tempswitch.tag == switchFunc.tag) {
[self.switchArr removeObject:tempswitch];
}
}
用block遍历后的代码:
[self.switchArrenumerateObjectsUsingBlock:^(id_Nonnullobj,NSUIntegeridx,BOOL*_Nonnullstop) {
UISwitch* tempswitch = obj;
if(tempswitch.tag== switchFunc.tag) {
*stop =YES;
if(*stop ==YES) {
[self.switchArrremoveObject:tempswitch];
}
}
}];
网友评论