oc语言中有三种遍历数组的方式,一是传统的for循环,二是for-in循环,三是迭代器。其中,第一种方式的效率最低。第二种遍历方法如下,第三种使用比较少,你可以自己去网上看下。
如果在for in 循环里,对这个数组进行了修改的话,无论是增,删,修改数组元素位置,都会扔一个异常出来,错误是被遍历的数组已被销毁(<__NSArrayM: 0xa4fc000> was mutated while being enumerated.)
但是有一种情况是可以的 那就是修改数组的值 不要修改位置什么的
// 修改
for (Employee *emp in emps) {
emp.height = @2.0;
}
// 删除
for (NSString * str in names)
{
if ([str isEqualTo: @"something"]){
[names removeObject: str];
break;
//一定要有break,否则会出错的。
}
}
网友评论