Objective c 将不断变化的标量值转换为不断变化的间隔或频率

Objective c 将不断变化的标量值转换为不断变化的间隔或频率,objective-c,velocity,scalar,nstimeinterval,Objective C,Velocity,Scalar,Nstimeinterval,虽然我是用Objective C编写代码,但这更像是一个一般的编程问题。 将不断变化的标量值转换为不断变化的间隔或频率的最佳方法是什么 现在,每次标量值更改时,我都会销毁NSInterval 即 创建一个新的,但这似乎是一个非常昂贵的方法来实现我的目标,因为在我的例子中,不断变化的标量值代表了一次滑动的水平速度 打个粗略的比方,想象一下视觉节拍器中反映的滑动速度,滑动越快,节拍器的频率越高(间隔越短)。首先,了解这是一个“测量”问题。要解决此问题,请分离出解决此问题所需的最小属性,并导出其余属性

虽然我是用Objective C编写代码,但这更像是一个一般的编程问题。
将不断变化的标量值转换为不断变化的间隔或频率的最佳方法是什么

现在,每次标量值更改时,我都会销毁NSInterval

创建一个新的,但这似乎是一个非常昂贵的方法来实现我的目标,因为在我的例子中,不断变化的标量值代表了一次滑动的水平速度


打个粗略的比方,想象一下视觉节拍器中反映的滑动速度,滑动越快,节拍器的频率越高(间隔越短)。

首先,了解这是一个“测量”问题。要解决此问题,请分离出解决此问题所需的最小属性,并导出其余属性

移动的距离和移动距离所用的时间是每个测量值的派生属性,在这种情况下,测量值被命名为“滑动”。在一个赛车的类比中,测量值被称为圈数。 现在可以计算“速度”。这就是“速度”,即距离/时间

根据刷卡的起点和终点,可以计算距离。 要获取时间值,请在
touchesbeated:withEvents:
touchesend:withEvents:
中使用
[startTime timeIntervalSinceNow]创建
NSDate的
startTime
实例

根据您的需要,您可能需要一个
Measurement
类,该类具有startPosition、endPosition、startTime和endTime的属性,以便跟踪“最快”的速度等


看一看旁边。我发现它在尝试将域问题映射到软件解决方案时非常有用。

谢谢。最后,我重新处理了我的问题,保持一个恒定的间隔(从移动的触摸得到),根据每个时间间隔移动的距离计算我的速度,然后将速度的变化映射到我需要的标量值。
   [self.myTimer invalidate];
    self.myTimer = nil;