如果我有一个NSArray并使用enumerateUsingBlock
循环遍历数组中的元素,但在某些情况下我需要跳过循环体并转到下一个元素,是否有任何continue
等价物在块中,或者我可以直接使用continue
吗?
谢谢!
更新
只想澄清一下,我想做的是:
for (int i = 0 ; i < 10 ; i++)
{
if (i == 5)
{
continue;
}
// do something with i
}
我需要的是块中的continue
等价物。
答案 0 :(得分:67)
一个块很像匿名函数。所以你可以使用
返回
退出函数,返回类型为void。
答案 1 :(得分:8)
使用“快速枚举”执行此操作时,请使用“继续”。
示例代码:
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
看不到小狗。
答案 2 :(得分:5)
你不能在块中继续使用,你将获得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);
}];