Swift NSTimer didn't work

2019-06-13 16:26发布

问题:

I make a "Command Line Tool", and I need use NSTimer. I start the timer, but it doesn't work...

import Foundation

class ct : NSObject {
    func start() {
        var timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: Selector("update"), userInfo: nil, repeats: true)
    }

    func update() {
        println("test timer");
    }
}
var a = ct();
a.start()

while(true) { sleep(10000000) }

回答1:

NSTimer needs a run loop to work properly, a CLI doesn't have/need one by default.

Call

CFRunLoopRun()

to start the run loop and

CFRunLoopStop(CFRunLoopGetCurrent())

to stop it and don't forget to return appropriate return values.



标签: swift nstimer