数组遍历删除问题
刚好遇到有人问这个问题,因为遍历一次再删除之后会导致数组越界的错误,直接说解决办法吧
用逆序枚举器的方法可以删除多个元素
[arrenumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
UIViewController*VC = obj;
//如果是这两个控制器就删除哈
if ([VC isKindOfClass:[SecondViewController class]] || [VC isKindOfClass:[FirstViewController class]]) {
[arrremoveObject:VC];
}
}];
有人应该用过这个,这个不能删除多个元素,因为数组发生改变的时候就自动停止遍历了,stop设置成no也是不管用的哈,当然这个方法也不是针对删除的,具体其他用法自己开发吧
[arrenumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
UIViewController*VC = obj;
if ([VC isKindOfClass:[SecondViewController class]]) {
[arrremoveObject:VC];
}
}];