iOS数组遍历删除问题

数组遍历删除问题



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

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

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

        }

    }];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天对数组进行了学习; 数组是相同类型的有序集合。有以下特点:1.长度确定;2.元素类型相同;3.数据类型可以是任...
    袁小胜阅读 247评论 0 0
  • package 宽度优先搜索; import java.util.HashSet; import java.uti...
    咣超阅读 146评论 0 0
  • TableViewCell 注册和不注册的区别和使用 注册和不注册的区别:有没有把一个identifier和一个C...
    月沉眠love阅读 814评论 0 0
  • 数组对象去重方法: // 数组对象去重 ```` toRetry = (arr = []) => { let re...
    搬砖笔记阅读 460评论 0 0
  • 苏州这个城市啊, 太美. 晨跑,一小时五公里的任务 每一次停下来拍完照都告诉自己, 等完成任务再停下来拍 每一次又...
    刘_青妤阅读 266评论 0 1