我有一个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 ()
任何帮助将不胜感激
答案 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
}
}
}