Я работаю быстро и хочу запускать функцию каждую минуту. Я хочу обновить метку с таймером обратного отсчета, сколько минут осталось до следующего обновления.Swift: запускать func каждую минуту
У меня есть базовый вариант рабочего
if let date = newDate {
let formatter : NSDateFormatter = NSDateFormatter()
formatter.dateFormat = "HH:mm"
formatter.timeZone = NSTimeZone.defaultTimeZone()
let string : NSString = formatter.stringFromDate(date)
let calendar = NSCalendar.currentCalendar()
let comp = calendar.components([.Minute], fromDate: date)
let minute = comp.minute
let remaining : Int = 60 - minute
var mins = "s"
if remaining == 1 {
mins = ""
}
self.refreshInLabel.text = "Refreshes at \(string) - \n \(remaining) minute\(mins) remaining "
}
, который обновляет, когда я просмотреть страницу на приложение, но я хочу его автоматическое обновление каждые минут. Я посмотрел на NSTimer, я считаю, что это можно сделать с помощью этого (как показано здесь: How to make a countdown with NSTimer on Swift), но я не могу разобраться, как это сделать в минуту, только после определенного времени отображения
Редактировать : я следующий до сих пор
override func viewDidLoad() {
super.viewDidLoad()
let calendar = NSCalendar.currentCalendar()
let comp = calendar.components([.Minute], fromDate: NSDate())
minute = comp.minute
_ = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: #selector(AdoptionCentreVC.updateTimer), userInfo: nil, repeats: true)
}
func updateTimer() {
let calendar = NSCalendar.currentCalendar()
let comp = calendar.components([.Minute], fromDate: NSDate())
let curMin = comp.minute
if(curMin > minute) {
NSLog("Changed")
self.minute = curMin
}
}
Я хотел бы знать, если Theres лучший способ
Там нет 'NSTimer' в коде, так что вам нужно, чтобы добавить его. –
Я знаю это, но я не знаю, что добавить интервал как, так как единственные примеры, которые я могу найти, показывают 60 секунд и т. Д. Не до следующей минуты –