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

OC对于遍历的坑

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

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

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

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

    解决方法一般是: 

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

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

    相关文章

      网友评论

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

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