- iOS开发遍历集合(NSArray,NSDictionary、N
- iOS开发遍历集合(NSArray,NSDictionary、N
- [学习笔记]_四种常用遍历方法(NSArray,NSDictio
- iOS开发之遍历集合(NSArray,NSDictionary)
- iOS开发遍历集合(NSArray,NSDictionary、N
- iOS开发遍历集合(NSArray,NSDictionary、N
- 03NSArray与NSMutableArray的区别
- NSArray,NSDictionary,NSSet相关的算法知
- iOS中copy与mutableCopy的那些事
- NSMapTable、NSHashTable和NSPointer
一般都会想到 for循环, 毕竟Objective-C是基于C语言的,自然可以使用for循环。
![](https://img.haomeiwen.com/i1676927/7ed2238089ecfa15.png)
![](https://img.haomeiwen.com/i1676927/3fed46486a00ce0e.png)
我们都知道字典和set是无序的,所以我们无法根据特定的整数下标来直接访问其中的值,于是需要先获取字典中的键或者set中的所有对象,这样就可以在获取到的有序数组上进行遍历了。然而创建数组是要额外的开销的,还会多创建出一个数组对象,他会保留collection中的所有对象,占用了内存。
所以,推荐用下面这张方式:
基于块的遍历方式
苹果封装了如此高效、优雅、易用的一套接口不用多么浪费。
![](https://img.haomeiwen.com/i1676927/fe607b5457dea9ac.png)
![](https://img.haomeiwen.com/i1676927/dce53c736a6b6d26.png)
就是这么简单,block直接把字典的key和value都给我们了,再也不用书写直白而繁琐的代码了。
![](https://img.haomeiwen.com/i1676927/bca5b493d26d4cb2.png)
相对于正向遍历多了一个枚举类型的参数NSEnumerationReverse,打开这个选项就可以反向遍历了。
![](https://img.haomeiwen.com/i1676927/52a18173cadd5163.png)
并发遍历,参数是:NSEnumerationConcurrent,也就是可以同时遍历collection中的几个元素,具体数量根据系统资源而定。这样会充分利用系统资源,高效快捷的完成collection的遍历,系统底层会通过GCD来处理并发事宜,开发者不需要担心内存和线程,其他方式若要实现高效的并发遍历十分有难度。通过块枚举遍历,改变collection并不会引起崩溃。
网友评论