2016-08-03 51 views
2

這是我的簡單流程。我仍然需要調用決策者()時,#2運行完畢後完成做的時間,並採取全局變量的測量決策者()的情況測試如何在第一次通過定時器完成後在下面的函數中調用函數

TestButtonTAPPED(),並調用:

  1. recordTimer()
  2. gatherInput()

  3. 選擇器:levelTimerCallback()

  4. 決策者()

    // 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() 
    
    } 
    
+1

我不知道我理解你想要達到:) –

+0

@Asdrubal我想#2,以呼叫#4時#2與它的時間 – james

+0

完成什麼你爲什麼不能只需在#3方法的if語句中調用'decisionMaker()'? – Asdrubal

回答

0
@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'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) > -30 
    { 
     // Do gathering for vaiables 
    } 
} 


func decisionMaker() { 
    // case statments here for final measurement 
} 
+0

謝謝你所有:) – james

+0

沒問題。快樂編碼 – Asdrubal

+0

當然代碼8現在對我大叫 - 回到快速轉換3 – james

相關問題