object-c基于块的遍历方式
来源:互联网 发布:古装网络剧2017 编辑:程序博客网 时间:2024/05/29 17:12
NSArray *anArray=/*...*/;[anArray enumerateObjectUsingBlock]: ^(id object,NSUInter idx,BOOL *stop){ // do something if(shouldStop){ *stop = yes; } }];
在当前object-c语言,最新引入的做法就是基于block的便利方式。
NSArray中定义方法如下:
- void enumerateObjectUsingBlock:(void (^)(id object,NSUInterger idx, BOOL *stop)) block
这三个参数 分别是id object表示当前迭代所针对的对象,别看这个不起眼,但是却非常有用,因为id类型可以被其他类型复写,所以如果块的签名能修改,指定对象的精确类型,便于编译器检查出开发者是否调用了该对象所不具备的方法。
例子如下:
NSDictionary *aDic = /**/[aDic enumerateKeysAndObjectsUsingBlock:^(NSString* key,NSString* object, BOOL * stop){ //do something}];
idx表示所针对的数组下标。。
stop为可以传入参数,终止遍历操作。
NSDictionary和NSSet方法同样。
<pre name="code" class="objc">
- void enumerateKeyAndObjectsUsingBlock:(void (^)(id key,id object,BOOL *stop))block
<pre name="code" class="objc">- void enumerateKeyAndObjectsUsingBlock:(void (^)(id object,BOOL *stop))block
此方法还支持执行反向遍历,另外一个版本都带有WithOptions
- void enumerateObjectWithOptions:NSEnumerationOptions options usingBlock :(void (^)(id object,NSUInterger idx, BOOL *stop)) block
Options是个enum,支持诸如NSEnumerationConcurrent 和NSEnumerationReverse,块并行执行和反向等
0 0
- object-c基于块的遍历方式
- 基于块的遍历方式
- object-c学习:object-c的函数、块
- Object-C之块枚举的使用
- Object-C 块语法
- Object-C,遍历目录
- Object-c: Block (方法块)
- object-c块(block)
- Object-C Block的实现方式
- object c 数据持久化的方式
- [c++]基于数组的二叉树遍历
- Javascript研究: 遍历对象的方式Object.getOwnPropertyNames vs Object.keys vs for ...in
- C字符串的三种遍历方式
- object-c 不定参数的遍历和原理
- 黑马程序员-Object C之block 块
- Object-C中的Block代码块
- 基于块的OTA
- object c load(相当于java的静态代码块)和initialize (相当于java中的构造代码块)
- 2015-1-29工作日志-王亮晶
- 《操作系统》总结
- 2015年1.29号工作日志----------赵鑫
- 【SzNOI语法百题】【d041】计算阶乘n!
- 什么是自动装箱拆箱
- object-c基于块的遍历方式
- 2015-1-29工作日志-刘婉
- linux系统中硬链接和软链接的区别
- [暖手][学习阶段-各路杂题][HDU-1028]Ignatius and the Princess III
- 如何发布ASP.NET web应用程序
- 【python】python编码规范
- 回溯算法总结
- KMP简单题--Number Sequence&&剪花布条
- 构建可扩展的Web站点(二)