0

我正在更新我在 App Store 上的飙车应用程序。以前用户会点击“开始”按钮,倒计时会开始,在计时器达到 0 后,应用程序会跟踪比赛所需的各种事情。例如,用户达到 60 MPH、1/8 英里和 1/4 英里需要多长时间。但是我添加了一个设置,允许用户点击开始按钮,然后在他们想要的时候启动。当应用程序感应到运动时,它会开始跟踪运动,就像它会在以前的版本中将计时器打到 0 一样。但是,我对使用最佳方法感到困惑,以便“等待”直到应用程序在跟踪信息之前感应到运动。我尝试了以下方法:

if(zeroTosixtyStyle == true){
        Warninglabel.text = ("Launch when you are ready!")
        repeat {
            sleep(UInt32(0.01))
        }while(locationManager.location?.speed ?? 0 < 2 );

        processTwo()

    }else{
    timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector:
        #selector(ZerotoSixtyViewController.DecupdateCounter), userInfo: nil, repeats: true)
        DecupdateCounter()
    }

然而,这显然不是一个好的解决方案。广告它会增加 CPU 使用率,并使应用程序的某些部分无响应。使用该方法实际上使“警告标签”在循环开始之前我实际上并没有更新到字符串。等到应用程序感应到运动以移动到“processTwo()”时,有什么更有效的方法?

有关更多信息,“zeroTosixtyStyle”是由用户设置设置的布尔值。如果为真,则应用程序等待用户启动,如果为假,则运行倒计时。这可以正常工作。

4

0 回答 0