菜鸟教程小白 发表于 2022-12-11 17:10:02

ios - 第一个从计时器完成后如何在下面的函数中调用函数


                                            <p><p>这是我的简单形式的流程。我仍然需要在 #2 完成运行后完成后调用 decisionMaker() 时间到了,并将用于测量的全局变量带到决策者() 进行案例测试</p>

<p>TestButtonTAPPED() 和调用:</p>

<ol>
<li>recordTimer()</li>
<li><p>gatherInput() </p></li>
<li><p>选择器:levelTimerCallback()</p></li>
<li><p>decisionMaker()</p>

<pre><code>// 1.
func recordTimer() {
    /* After 10 seconds, let&#39;s stop the recording process */
    let delayInSeconds = 10.0
    let delayInNanoSeconds = DispatchTime.now() + Double(Int64(delayInSeconds * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC)

    DispatchQueue.main.after(when: delayInNanoSeconds, execute: {
      self.soundRecorder!.stop()
      self.handBtn.isHidden = false
    })

}

// 2.
func gatherInput() {
    levelTimer = Timer.scheduledTimer(timeInterval: 0.9, target: self, selector: #selector(DBListener.levelTimerCallback), userInfo:nil, repeats: true)
}

//3.
func levelTimerCallback() {
    if soundRecorder.averagePower(forChannel: 0) &gt; -30
    {
      // Do gathering for vaiables
    }
}


// 4.
func decisionMaker() {
    // case statments here for final measurement
}



@IBAction func handTapped(_ sender: UIButton) {

    clearGlobalVariablesOnTap()
    listner()
    soundRecorder.record()
    recordTimer()
    dbListener.gatherInput()

}
</code></pre> </li>
</ol></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><pre><code>@IBAction func handTapped(_ sender: UIButton) {
    clearGlobalVariablesOnTap()
    listner()
    soundRecorder.record()
    recordTimer()
}

func recordTimer() {

    //As soon as this method is called this portion will get executed
    dbListener.gatherInput()

    /* After 10 seconds, let&#39;s stop the recording process */
    let delay = 10.0
    let delayInSeconds = DispatchTime.now() + DispatchTimeInterval.seconds(delay)


    //After 10 seconds this block will execute
    DispatchQueue.main.after(when: delayInSeconds, execute: {
      self.soundRecorder!.stop()
      self.handBtn.isHidden = false
      self.levelTimer.invalidate = true
      self.decisionMaker()
    })

}

func gatherInput() {
    levelTimer = Timer.scheduledTimer(timeInterval: 0.9, target: self, selector: #selector(DBListener.levelTimerCallback), userInfo:nil, repeats: true)
}

func levelTimerCallback() {
    if soundRecorder.averagePower(forChannel: 0) &gt; -30
    {
      // Do gathering for vaiables
    }
}


func decisionMaker() {
    // case statments here for final measurement
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 第一个从计时器完成后如何在下面的函数中调用函数,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/38749322/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/38749322/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 第一个从计时器完成后如何在下面的函数中调用函数