新人初学ios,对于for循环遍历和forin循环遍历的使用场景很混乱,希望有人能指点迷津。 新人初学ios,对于for循环遍历和forin循环遍历的使用场景很混乱,希望有人能指点迷津。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没啥区别,看习惯for循环主要用在你已经知道了循环的次数比如你要在屏幕上打出100个"hello word!"那么就可以用for (int i=0;i<100,i++)这里你已经很明确了是100for in主要是方便遍历已经知道对象类型的数组同时不关心索引的情况比如已经知道数组里都是uibutton那么你就可以直接用for uibutton *tmpbutton in array这样你就可以直接通过tmpbutton直接访问数组里的每一个button另外数组还有一种用block遍历的方法 [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { //..... }];这种方法有一个要注意的地方就是可能会有异步执行的问题最后网络上有人分别对这三种遍历方式进行了效率方面的测试结果是for in的效率是最高的 for in 遍历可变数组的时候,如果你再遍历里面添加或者删除元素的时候,枚举器可能会分配错误的元素数据,甚至崩溃因为对于数组的变成,for in 遍历的枚举器是不知道容器的数据变更的而普通的for 循环遍历是知道的,但是效率上略慢一点点 for in 循环遍历比for更高级一些,当你数组里面的元素对象都一样,就可以用for in进行遍历,进行接受的对象跟数组里面所存储的是同一种类型 可以参考牛人博客 http://blog.sunnyxx.com/2014/04/30/ios_iterator/ 非常详细 博客片段我是前言集合的遍历操作是开发中最常见的操作之一,从C语言经典的for循环到利用多核cpu的优势进行遍历,开发中ios有若干集合遍历方法,本文通过研究和测试比较了各个操作方法的效率和优略势,并总结几个使用集合遍历时的小技巧。ios中常用的遍历运算方法遍历的目的是获取集合中的某个对象或执行某个操作,所以能满足这个条件的方法都可以作为备选:经典for循环for in (NSFastEnumeration),若不熟悉可以参考《nshipster介绍NSFastEnumeration的文章》makeObjectsPerformSelectorkvc集合运算符enumerateObjectsUsingBlockenumerateObjectsWithOptions(NSEnumerationConcurrent)dispatch_apply。。 请问如何将自己的iphone应用发布到app store上? 如何快速删除一个目录下同后缀名的文件 qtcreator里如何使用cocoa api iphone 开发人员 入内(现金求解) oc多个变量等于同一个值有没有简化写法? IOS 修改按钮的背景颜色 IOS如何 获取周边搜索到的 Wi-Fi SSID? 求Xcode4.1或者4.6版本 ios请求。net接口有时进得去,有时候进不去 使用在线安装协议itms-services遇到的问题 新项目ios开发,现是是选object-c好还是swift好? 不同设置的屏幕适配问题?求大神解答
for循环主要用在你已经知道了循环的次数
比如你要在屏幕上打出100个"hello word!"
那么就可以用for (int i=0;i<100,i++)
这里你已经很明确了是100for in主要是方便遍历已经知道对象类型的数组
同时不关心索引的情况
比如已经知道数组里都是uibutton
那么你就可以直接用
for uibutton *tmpbutton in array
这样你就可以直接通过tmpbutton直接访问数组里的每一个button另外数组还有一种用block遍历的方法
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
//.....
}];
这种方法有一个要注意的地方就是可能会有异步执行的问题最后网络上有人分别对这三种遍历方式进行了效率方面的测试
结果是for in的效率是最高的
因为对于数组的变成,for in 遍历的枚举器是不知道容器的数据变更的
而普通的for 循环遍历是知道的,但是效率上略慢一点点
我是前言集合的遍历操作是开发中最常见的操作之一,从C语言经典的for循环到利用多核cpu的优势进行遍历,开发中ios有若干集合遍历方法,本文通过研究和测试比较了各个操作方法的效率和优略势,并总结几个使用集合遍历时的小技巧。ios中常用的遍历运算方法遍历的目的是获取集合中的某个对象或执行某个操作,所以能满足这个条件的方法都可以作为备选:经典for循环
for in (NSFastEnumeration),若不熟悉可以参考《nshipster介绍NSFastEnumeration的文章》
makeObjectsPerformSelector
kvc集合运算符
enumerateObjectsUsingBlock
enumerateObjectsWithOptions(NSEnumerationConcurrent)
dispatch_apply
。。