library(plyr)
ddply(tbl, .(Category), summarise, sum = sum(Frequency))
Запуск функции с timer
каждую миллисекунду не рекомендуется, ссылка: https://stackoverflow.com/a/30983444/8447312
Так что вы можете запускать функцию таймера каждый 50 миллисекунд, чтобы быть в безопасности и обновить свой индикатор выполнения. Это не должно быть слишком заметным.
Также убедитесь, что timeRemaining
является Double
, а затем просто попробуйте:
func startTimer() {
timer = Timer.scheduledTimer(timeInterval: 0.050, target: self, selector: #selector(timerUpdate), userInfo: nil, repeats: true)
}
@objc func timerUpdate() {
if timeRemaining <= 0 {
progressBar.setProgress(Float(0), animated: false)
bonusTimerLabel.text = "0"
bonusTimerLabel.textColor = UIColor(red: 186/255, green: 16/255, blue: 16/255, alpha: 1)
} else {
progressBar.setProgress(Float(timeRemaining)/Float(20), animated: false)
timeRemaining -= 0.050
bonusTimerLabel.text = "\(Int(timeRemaining))"
}
1 миллисекунда равна 0,001 секунде. Поэтому измените свойство timerInterval в timer на 0,001:
timer = Timer.scheduledTimer(timeInterval: 0.001, target: self, selector: #selector(timerUpdate), userInfo: nil, repeats: true)