Ios 我的计时器在一轮后停止

Ios 我的计时器在一轮后停止,ios,iphone,swift,vibration,Ios,Iphone,Swift,Vibration,我有这个代码,它可以让我的手机不断震动。但它在1次振动后停止。我的计时器有问题吗 var timer: Timer? @IBAction func button1(_ sender: UIButton) { AudioServicesPlayAlertSound(kSystemSoundID_Vibrate) timer?.invalidate() timer = Timer.scheduledTimer(timeInterval: 0.1, target: self,

我有这个代码,它可以让我的手机不断震动。但它在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)   
}

我做错了什么?帮忙?我还将xcode与swift结合使用。如果有必要的话,还可以买一部iPhone7 plus。

计时器在一轮后不会停止振动。计时器从不震动


计时器所做的是重复调用
doaction
方法。但是
doaction
方法不执行任何振动。因此,唯一的振动是
按钮1

中的单个振动。只有当您点击按钮时,振动才会发生,您需要在“doaction”方法中发生振动:


另外,当我断开连接并尝试运行appShow
doaction
方法时,我的iphone也会崩溃。毕竟,这是计时器反复调用的。
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)
}