美文网首页程序员
OC对于遍历的坑

OC对于遍历的坑

作者: 一苇杭 | 来源:发表于2017-02-18 09:20 被阅读49次

我们在使用 enumerateObject 或者 for in 等遍历方式对数组进行遍历时. 经常有需求是把其中某些元素给剔除, 或者在其中添加新元素. 

一般, 不注意时, 会立马在遍历的block中进行操作, 当然, 这样不会立马报错, 程序也可能在一段时间内不崩溃. 但这是程序里的一个隐藏炸弹

这种情况下, 内部操作会导致, array 发生改变, 下一个idx也不准确了. 

解决方法一般是: 

第一: 使用可变数组保存, 然后利用可变数组或者源数组来遍历,  对应另一个数组在遍历内部进行操作.

第二, 使用NSMutableIndexSet, 将对应的idx 保存起来, 然后在遍历结束后再来进行总体的添加或删除. 

相关文章

  • OC对于遍历的坑

    我们在使用 enumerateObject 或者 for in 等遍历方式对数组进行遍历时. 经常有需求是把其中某...

  • NSArray

    简写NSSArray *arr = @"";常规遍历如果是OC数组可以使用OC中的增强for循环来遍历诸葛取出ar...

  • Swift 4.0+ 数组遍历

    1、转换成OC数组 enumerated函数遍历 2、用enumerated()函数遍历 3、下标遍历 4、遍历数...

  • oc 遍历

    标签:ios开发入门 NSArray NSDictionary ​2016年07月30日10:02:31补充:GC...

  • 切片遍历的坑

    我们正常对于一个切片进行遍历不会有啥坑的,会出现有坑的点是,在遍历的过程中想对原切片数据进行修改,其中包括修改原切...

  • 遍历(NSArray、NSDictionary、NSSet)

    遍历集合建议使用块遍历OC NSArray *array = @[@"1", @"2"]; [array enum...

  • OC中的各种遍历

    OC中的各种遍历 iOS开发中我们经常遇到各种的数据处理,所以就会经常遇到数组遍历 和 字典遍历。但是不同的遍历方...

  • OC中的遍历

    一、使用for循环 要遍历字典、数组或者是集合,for循环是最简单也用的比较多的方法,示例如下 优点:简单 缺点:...

  • OC数组遍历

    /***************************数组遍历*************************...

  • C++ map转OC 字典

    1.遍历map取出key和value存入OC字典

网友评论

    本文标题:OC对于遍历的坑

    本文链接:https://www.haomeiwen.com/subject/lzerwttx.html