您的位置:首页 > 移动开发 > Objective-C

enumerateObjectsUsingBlock

2016-03-17 15:14 651 查看
这是foundation里面的一个方法:

- (void)enumerateObjectsUsingBlock:(void (^)(ObjectType obj, NSUInteger idx, BOOL *stop))block NS_AVAILABLE(10_6, 4_0);


这个方法也是一种循环的方法与for,while实现的功能一样,但是既然苹果出了这个方法,那一定有它的与众不同的地方。

NSArray *array = @[@"zhang sna",@"li si",@"wang wu"];
[array enumerateObjectsUsingBlock:^(id items, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"%lu is %@",(unsigned long)idx,items);
}];


这个一个简单的循环输出代码。

输出log:

2016-03-17 15:06:10.308 SDLayOut[24208:318707] 0 is zhang sna
2016-03-17 15:06:10.308 SDLayOut[24208:318707] 1 is li si
2016-03-17 15:06:10.309 SDLayOut[24208:318707] 2 is wang wu


ObjectType obj:这里声明数组里面你放入的是什么类型的东西,不确定的话就直接id类型最靠谱。

NSUInteger idx:这是数组的下标

BOOL * _Nonnull stop:这是一个bool值,决定是否继续循环。如果有NO,继续循环下去。如果为YES ,停止循环。

测试一下里面bool值的作用:

NSArray *array = @[@"zhang sna",@"li si",@"wang wu"];
[array enumerateObjectsUsingBlock:^(id items, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"%lu is %@",(unsigned long)idx,items);
*stop = YES;
}];


输出log

2016-03-17 15:13:03.755 SDLayOut[24415:326788] 0 is zhang sna
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  foundation 苹果