Objective-C:在inheritance枚举块中继续?
如果我有一个NSArray,并且使用enumerateUsingBlock
来遍历数组中的元素,但是在某些情况下,我需要跳过循环体并转到下一个元素,在块中是否存在任何continue
等价的内容,或者是否可以直接使用continue
?
谢谢!
更新:
只是想澄清一下,我想要做的是:
for (int i = 0 ; i < 10 ; i++) { if (i == 5) { continue; } // do something with i }
我需要的是continue
相当于块。
一个块很像一个匿名函数。 所以你可以使用
返回
从返回types为void的函数中退出。
使用快速枚举来使用“继续”来做到这一点。
示例代码:
NSArray *myStuff = [[NSArray alloc]initWithObjects:@"A", @"B",@"Puppies", @"C", @"D", nil]; for (NSString *myThing in myStuff) { if ([myThing isEqualToString:@"Puppies"]) { continue; } NSLog(@"%@",myThing); }
和输出:
2015-05-14 12:19:10.422 test[6083:207] A 2015-05-14 12:19:10.423 test[6083:207] B 2015-05-14 12:19:10.423 test[6083:207] C 2015-05-14 12:19:10.424 test[6083:207] D
看不到一只小狗。
你不能在块中使用continue,你会得到error: continue statement not within a loop
。 使用退货;
[array enumerateObjectsUsingBlock: ^(id obj, NSUInteger idx, BOOL *stop) { /* Do something with |obj|. */ if (idx==1) { return; } NSLog(@"%@",obj); }];
- 为什么我不能在Swift中的UIViewController上调用默认的super.init()?
- 如何在UIButton中创build边框?
- iPhone – Grand Central调度主线程
- 在UITableView中使用自动布局来实现dynamic单元格布局和可变行高
- setObject:forKey:和setValue:forKey:在NSMutableDictionary中的区别在哪里?
- 只有在键盘覆盖input字段时才能移动视图
- 如何创build自定义键盘
- performFetchWithCompletionHandler永远不会被解雇
- Xcode项目格式:3.1,3.2,6.3和8.0有什么区别?