oc for in遍历

在oc中用for in遍历可变数组时,不能修改删除新增元素,因为for in遍历是枚举遍历,在遍历的过程中不能修改容器里的值。


NSMutableArray *arr=[NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];

    for (NSString *str in arr) {

        if ([str isEqualToString:@"1"]) {

           [arr addObject:@"4"];

        }

    }

错误:

 reason: '*** Collection <__NSArrayM: 0x7fa2b8449220> was mutated while being enumerated.'

那如果这样为什么View遍历subview子视图removeFromSurperview时,为什么没有报错呢?

一旦将UIView对象的subview removeFromSurperview之后,UIView对象的subviews数组,居然连整个对象都不同了(从对象指针可以看出来)

参考:http://www.cocoachina.com/bbs/read.php?tid=264935

时间: 2024-09-17 04:54:39

oc for in遍历的相关文章

iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值

在上篇博客<iOS开发之使用Runtime给Model类赋值>中介绍了如何使用运行时在实体类的基类中添加给实体类的属性赋值的方法,这个方法的前提是字典的Key必须和实体类的Property Name相同,然后通过运行时来生成和执行Setter方法给Model类的属性赋值. 通过Runtime来给Model类属性赋值的好处是多多的,它便于代码的后期维护,并且提高了开发效率.当你拿到解析后的字典时你不用一个一个的通过key去把字典的值赋值给相应的Model类的属性,本篇博客中会给出如何去遍历Mod

OC——第五天NSSArray&amp;nbsp;/NSDicti…

1.oc中常用的集合(容器)有: 1.NSArry 数组:2.NSDicitionary 字典:3.NSSet 集(不常用)     数组:NSArry 继承自NSObject ,不可变的数组,用于管理一系列对象的一个有序的集合:注意:数组中只能存放对象类型,虽然数组中存储的内容不能修改,但是数组指针是可以重指向的;   ============================================== 总结:NSArray NSDictionary NSSet     1. NSAr

请教一下 oc 这道题 第三问怎么做 求解题思路

问题描述 请教一下 oc 这道题 第三问怎么做 求解题思路 // 1.// - 使用可变数组管理所有书籍(定义Book类,包含书名和价格)// - 数组可以添加.删除书籍对象// - 可以从数组中 根据书名查找书籍,并修改书籍的价格// - 展示所有书籍清单(书名和价格) Book *str1 = [Book bookWithName:@""DuZhe"" price:32]; Book *str2 = [Book bookWithName:@""

oc-求使用OC把一个二维数组排序

问题描述 求使用OC把一个二维数组排序 求使用OC把一个二维数组排序 解决方案 参考 #define N 3 #define M 3 int a[M][N]={2,5,8,7,4,1,3,6,9}; int i,j,t; int *p; p=&a[0][0]; for(i=0;i<M*N;i++) for(j=i+1;j<M*N;j++) if(p[i]>p[j]) t=p[i],p[i]=p[j],p[j]=t; for(i=0;i<M;i++) { for(j=0;j&

OC语言大总结(下)

根据OC学习的知识点,总结了一下,希望能帮到大家! 作者:韩俊强   未经允许,请勿转载! 关注博主:http://weibo.com/hanjunqiang 上接:http://blog.sina.com.cn/s/blog_814ecfa90102vuu1.html 第五节 数组.字典.集合 字典.集合:http://blog.sina.com.cn/s/blog_814ecfa90102vub9.html 数组:http://blog.sina.com.cn/s/blog_814ecfa9

OC语言大总结(上)

根据OC学习的知识点,总结了一下,希望能帮到大家! 作者:韩俊强  未经允许,请勿转载! 关注博主:http://weibo.com/hanjunqiang 第一节类于对象   类与对象http://blog.sina.com.cn/s/blog_814ecfa90102vtum.html 知识点 注意事项 面向对象编程 OOP(Object Oriented Programming) 面向对象语言 C++,Java,C#,OC,Swift 概念 类,对象,封装,继承,多态... 面向过程编程

Google Palette算法详解以及OC化

1.背景 在发现百日大战时景项目中.有一个创新玩法,就是通过筛选图片主色调来显示如红色系,蓝色系照片.这就涉及到了图片主色调的提取.技术选型为客户端进行图片颜色提取,上传到服务端.但是由于项目时间限制,iOS和Android的图片色调提取算法不一样.Android采用的是Google官方推出的Palette算法,为了统一,在这一期我去研究了一下Palette算法,并将它OC化.最终将作为一个两端统一的技术方案,提供SDK到海纳平台上. 2.Google Palette算法简介 Palette算法

NSArray各种遍历

Student.h: #import <Foundation/Foundation.h> @interface Student : NSObject +(id)student; -(void)test; @end Student.m: #import "Student.h" @implementation Student +(id)student{ return [[[Student alloc] init] autorelease]; } -(void)test:(NSS

OC——第五天NSSArray&amp;amp;nbsp;/NSDicti…

1.oc中常用的集合(容器)有: 1.NSArry 数组:2.NSDicitionary 字典:3.NSSet 集(不常用)     数组:NSArry 继承自NSObject ,不可变的数组,用于管理一系列对象的一个有序的集合:注意:数组中只能存放对象类型,虽然数组中存储的内容不能修改,但是数组指针是可以重指向的;   ============================================== 总结:NSArray NSDictionary NSSet     1. NSAr