用于带有跳过或步骤的nsarray的循环或快速枚举

时间:2013-11-20 19:45:40

标签: objective-c nsarray enumeration

我有一个NSArray,我需要在这两个项目上每两个项目执行一次动作。所以我认为它就像一个步骤值或类似的东西。

启动循环,在前两个项目上运行我的命令,然后在接下来的两个项目上循环并运行我的命令 - 直到数组耗尽。

关于如何做到这一点的任何想法?我认为使用模数,但这可以帮助甚至奇怪,对吧?我每2个都需要偶数和奇数。

我在前两个项目上运行的硬连线代码如下。我想添加更多项目,并在操作后智能地跳过每两个循环并重新开始循环。

for (int i = 0; i  < 2; i ++) {
    shut01Path  = CGPathCreateMutable();
    shut01Path = CGPathCreateMutableCopy([self buildPathAtIndex:i].CGPath);
    [arr_cgPathArray addObject:[UIBezierPath bezierPathWithCGPath:shut01Path]];
}

3 个答案:

答案 0 :(得分:1)

只需将计数器增加两个

for (NSUInteger i = 0; i  < array.count; i += 2) {
    id even = array[i];
    id odd = array[i + 1]; // Make sure the array has even count, otherwise this crashes.
}

答案 1 :(得分:0)

您只需要在for循环的每次迭代开始时检查索引值。 如果索引值从零开始并递增1,则可以使用模数进行检查 如果索引%2为零,则表示您有一个偶数。否则奇数。 其他条件和索引方案可能需要更高级的数学运算或启用其他条件检查。

这是标准C和通用编程。

答案 2 :(得分:0)

这段代码适合我。根据需要更改s。

int s = [array count]/4;
for (int i = 0; i  < s; i ++) {
    NSLog(@"%i",(i*s));
    NSLog(@"%i",(i*s) + 1);
}
相关问题