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); }];