gpt4 book ai didi

ios - 如何检查某个值在一秒内是否更改了一定数量?

转载 作者:行者123 更新时间:2023-11-29 03:49:13 24 4
gpt4 key购买 nike

我正在监视应用程序中的俯仰值和横滚值,我想监视它们是否在一秒钟内改变了 5 度,然后运行一个进程。目前我的代码如下所示:

 CMAttitude *attitude;
CMDeviceMotion *motion = scoringManage.deviceMotion;
attitude = motion.attitude;
basePitch = degrees(attitude.pitch);
baseRoll = degrees(attitude.roll);

if((pitchfloat >= basePitch+5) || (pitchfloat <= basePitch-5)) {


}
if((rollfloat >= baseRoll+5) || (rollfloat <= baseRoll-5)) {

}

调用者:

yprTime = [NSTimer scheduledTimerWithTimeInterval:(1.0/1.0) target:self selector:@selector(yprscore) userInfo:nil repeats:YES];

这个过程与我的计时器一起每秒运行一次,但是当值更改时,它将运行该循环多次。

问题在于 if 语句在那一秒内运行了 20 倍。

最佳答案

如果您只想在值更改后运行它,则需要设置一个 BOOL。在您的 ifitch > 5 语句中设置另一个 if 检查 BOOL

if((pitchfloat >= basePitch+5) || (pitchfloat <= basePitch-5)) {
if (firstTimeBOOLCheckisTrue == NO) {

firstTimeBOOLCheckisTrue = YES;

[self doSomething];
}
}


(void *)doSomething{

if (imReadytoCheckPitchAgain == YES){
firstTimeBOOLCheckisTrue = NO;

}

关于ios - 如何检查某个值在一秒内是否更改了一定数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17277162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com