-1

假设我有NSArray60 个元素。其中,我想在索引 15、30、45、60 处获得 4 个值。我试图将其放入 for 循环中,但在这里效果不佳:

for (int elementIndex = x_valuesDataArray.count / 4; elementIndex < x_valuesDataArray.count; elementIndex = elementIndex + elementIndex){
    NSLog(@"Element index is %d", elementIndex);
    NSLog(@"Total values %u", x_valuesDataArray.count);
    NSString *firstValue = [x_valuesDataArray objectAtIndex:elementIndex];
    [xAxisArray02 addObject:firstValue];
}

但是我的NSLog输出显示我做错了:

2013-04-12 13:48:59.267 myApp[44682:907] Element index is 15
2013-04-12 13:48:59.269 myApp[44682:907] Total values 60
2013-04-12 13:48:59.270 myApp[44682:907] Element index is 30
2013-04-12 13:48:59.271 myApp[44682:907] Total values 60

我在这里做错了什么?

4

2 回答 2

2
for (int i = 1; i <= 4; i++) {
    int elementIndex = x_valuesDataArray.count * i / 4 - 1;
    // ...
}

应该管用。请注意,具有 40 个元素的数组的索引为 0 .. 39。在这种情况下,上述循环给出了索引 9、19、29、39。还假设该数组至少有4 个元素。

于 2013-04-12T09:59:18.593 回答
0

A. x_valuesDataArray 有 60 个元素,而不是您预测的 40 个元素。

B. 这行:elementIndex = elementIndex + elementIndex应该是

elementIndex = elementIndex + 10

如果valuesDataArray是40。

于 2013-04-12T10:02:38.793 回答