关于for in 和 for之间的区别

来源:互联网 发布:数据库安全测试方法 编辑:程序博客网 时间:2024/05/28 17:08

最近在操作数组的时候出现了如下的一个错误   <__NSArrayM: 0xa4fc000> was mutated while being enumerated.

出现这个问题的原因 经过查找之后 是因为我在枚举的时候对数组中的元素进行了删除的操作 

NSArray的枚举操作中有一条需要注意:对于可变数组进行枚举操作时,你不能通过添加或删除对象这类操作来改变数组容器。如果你这么做了,枚举器会很困惑,而你将得到未定义的结果。

而本身这种操作也是有问题的,数组容器已经改变,可能遍历到没有分配的位置,用for循环机器不能自己察觉,但是枚举器可以察觉。



 

0 0
原创粉丝点击