這是我的簡單流程。我仍然需要調用決策者()時,#2運行完畢後完成做的時間,並採取全局變量的測量決策者()的情況測試如何在第一次通過定時器完成後在下面的函數中調用函數
TestButtonTAPPED(),並調用:
- recordTimer()
gatherInput()
選擇器:levelTimerCallback()
決策者()
// 1. func recordTimer() { /* After 10 seconds, let'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) > -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() }
我不知道我理解你想要達到:) –
@Asdrubal我想#2,以呼叫#4時#2與它的時間 – james
完成什麼你爲什麼不能只需在#3方法的if語句中調用'decisionMaker()'? – Asdrubal