如何访问NSArray中的奇数和偶数对象

时间:2013-04-04 22:19:58

标签: objective-c nsarray

我有一个NSArray,我想访问NSArray上的奇数和偶数对象,因为它们彼此保持不同的值。

有效地说,这就是我现在所做的一切

- (void)splitArray:(NSArray)array {
   for (id object in array) { // this itterates my array
      // do stuff in here
   }
}

我需要弄清楚如何捕捉偶数或奇数的物体......我在想像

这样的东西
- (void)splitArray:(NSArray)array {
   int i = 1;
   for (id object in array) { // this itterates my array
      if (i == even) {
        // do stuff here
      }
      else if (i == odd) {
       // do stuff here
      }
     i++
   }
}

只是我不知道在if ()

之间使用什么

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:5)

要确定整数是偶数还是奇数,请使用模%运算符。如果index % 2 == 0那么它是偶数,否则它很奇怪。

您可以使用enumerateObjectsUsingBlock:循环遍历数组,而无需单独维护索引。

- (void)splitArray:(NSArray *)array {
    [array enumerateObjectsUsingBlock:^(id obj, NSUInteger index, BOOL *stop) {
        if (index % 2 == 0) {
            // even stuff here
        } else {
            // odd stuff here
        }
     }];
}

答案 1 :(得分:1)

如上所述,要么将i设置为零并在for循环中递增它,要么只使用带有新NSArray语法的普通for循环(假设您使用的是最近的Xcode的版本)。另请注意,您应该传递NSArray *,而不是NSArray

- (void)splitArray:(NSArray*)array {
    for ( int i = 0; i < [array count]; i++ )
    {
        id object = array[i];

        if ( i % 2 == 0 ) {
            // even stuff here
        }
        else {
            //  odd stuff here
        }
    }
}