Я создал базовое приложение с секундомером на нем. Он запускает 3 кнопки - воспроизведение, пауза и сброс на панели навигации, которые записываются на ярлык под названием timerLabel.Секундомер в фоновом режиме спящего режима
Проблема заключается в том, что приложение закрывается или iPhone переходит в спящий режим, секундомер останавливается. Я искал ответ в других вопросах, и кажется, что единственный способ - записать фактическое время, когда приложение выключится, и записать время, когда оно пробуждает и сравнивает разницу - затем напишите это на этикетке
Проблема У меня нет абсолютно никакой идеи, как включить это в мой текущий код. Я даже не знаю, как получить время. Вот мой код из моего контроллера.
func updateTimer() {
time++
updateTimeDisplay()
}
func secondsToHoursMinutesSeconds (seconds : Int) -> (Int, Int, Int) {
let h = seconds/3600
let m = (seconds % 3600)/60
let s = (seconds % 60)
return (h, m, s)
}
func pauseTimer() {
timer.invalidate()
}
func startTimer() {
if !timer.valid {
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("updateTimer"), userInfo: nil, repeats: true) }
else {
print("The Stopwatch has already started!")
}
}
func resetTimer() {
time = 0
timer.invalidate()
updateTimeDisplay()
}
func updateTimeDisplay() {
let (h, m, s) = secondsToHoursMinutesSeconds(time)
let timeToDisplay = String(format:"%02d:%02d:%02d", h, m, s)
timerLabel.text = timeToDisplay
}
NSTimer - не работает для фона. – tktsubota