OC对于遍历的坑

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

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


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

解决方法一般是: 

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

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


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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,209评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,906评论 18 399
  • 老公:放暑假了,你的工作更忙了!每天7:30出门,早餐都来不及为你煮好,你总是说:你别起来,多睡睡,休息好是最关键...
    西琴阅读 910评论 0 0
  • html通过表单收集用户信息(即:不同类型数据)并提交后台服务器。所有向服务器提交信息的标签以及值都必须放在 标签...
    饥人谷_saybye阅读 1,469评论 0 0
  • 火其姆,顾名思义:就是抓住精准客户群的方法,如何抓住精准客户群,我们可以从一个产品来说。首先产品的定位是什么?产品...
    佩奇的快乐生活阅读 3,177评论 0 0