iOS数组遍历删除问题

2019-05-24  本文已影响0人  程序猿宋强

数组遍历删除问题


刚好遇到有人问这个问题,因为遍历一次再删除之后会导致数组越界的错误,直接说解决办法吧

用逆序枚举器的方法可以删除多个元素

    [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];

        }

    }];

上一篇 下一篇

猜你喜欢

热点阅读