2017-10-11 57 views
-2

我有這個代碼可以讓我的手機不斷振動。但1次振動後停止。我的計時器有問題嗎?我的計時器在一輪後停止

var timer: Timer? 

@IBAction func button1(_ sender: UIButton) { 
    AudioServicesPlayAlertSound(kSystemSoundID_Vibrate) 
    timer?.invalidate() 
    timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: Selector(("doaction")), userInfo: nil, repeats: true) 
} 

我做錯了什麼?幫幫我?我也用swift使用xcode。並有一個iPhone 7加上,如果重要的話。

+0

也是我的iphone死機一次,我斷開,並嘗試運行應用程序 –

+1

秀請'doaction'方法。畢竟,這是計時器重複呼叫的內容。 – matt

回答

1

計時器在一輪後不停止振動。定時器從不振動。

該計時器的作用是重複調用doaction方法。但doaction方法不執行任何振動。因此唯一的振動是button1中的單個振動。

0

,當你點擊按鈕的振動只發生,你需要的振動,你的「doaction」的方法來發生:

var timer: Timer? 

@IBAction func button1(_ sender: UIButton) { 
    doaction() 
    timer?.invalidate() 
    timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: Selector(("doaction")), userInfo: nil, repeats: true) 
} 

func doaction() { 
    AudioServicesPlayAlertSound(kSystemSoundID_Vibrate) 
}