2017-10-11 106 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) 
}