I'm working in swift and want to run a function every minute. I want to update a label with a count down timer with how many minutes left till the next update.

I have a basic version working

```
    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 "
    }

```

which is updating when i view the page on the app, but i want it to auto update every minutes.
I've looked at NSTimer, i believe it can be done with this (as shown here: [How to make a countdown with NSTimer on Swift](https://stackoverflow.com/questions/29374553/how-to-make-a-countdown-with-nstimer-on-swift)) but i can't work out how to make it fire on the minute, only after a certain time display

Edit:
I have the following so far

```
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
    }
}

```

I'd like to know if theres a better way