0

我正在为 iPhone 写作,我正在尝试测量最大加速度之间的时间。想象一下,您已将 iPhone 连接到一个摆动的弹簧上。我想要做的是测量振荡的频率。我这样做的方法是将一定数量的加速度值(每秒更新 20 次)存储在 NSMutableArray 中,并将当前加速度值与之前的加速度值进行比较。

如何将每个更新的加速度值添加到 NSMutableArray 并同时从数组后面删除值,因为我不再需要它们?

提前致谢!

4

2 回答 2

1

NSMutableArrays -addObject:/-insertObject:atIndex:-removeLastObject/你-removeObjectAtIndex:在找什么?有关更多信息,请参阅

于 2010-05-09T20:19:20.843 回答
1

将阵列想象成一个轮子。填满后,使用旋转索引作为替换位置。

myIndex = ( ( myIndex + 1 ) % myCount );
[myArray replaceObjectAtIndex:myIndex withObject:newValue];

您可以使用一堆将替换的 [NSNull null] 对象对其进行初始化,因此第一次不需要其他特殊处理。

收集完数据后,如果可以简化其他操作,请先组织数组以包含适当的元素。

NSRange range = NSMakeRange( 0 , myIndex );
NSArray *temp = [myArray subarrayWithRange:range];
[myArray removeObjectsInRange:range];
[myArray addObjectsFromArray:temp];
于 2010-05-09T20:35:08.317 回答