Если вам нужно что-то подобное, т.е. вы можете получить к нему доступ из любой точки мира:
например:
class MyGlobalTimer: NSObject {
let sharedTimer: MyGlobalTimer = MyGlobalTimer()
var internalTimer: NSTimer?
func startTimer(){
guard self.internalTimer != nil else {
fatalError("Timer already intialized, how did we get here with a singleton?!")
}
self.internalTimer = NSTimer.scheduledTimerWithTimeInterval(1.0 /*seconds*/, target: self, selector: #selector(fireTimerAction), userInfo: nil, repeats: true)
}
func stopTimer(){
guard self.internalTimer != nil else {
fatalError("No timer active, start the timer before you stop it.")
}
self.internalTimer?.invalidate()
}
func fireTimerAction(sender: AnyObject?){
debugPrint("Timer Fired! \(sender)")
}
}
Это грубо, и требует много работы, но его функционал за то, что я придумал в течение 1 минуты.
Чтобы получить доступ к таймеру вы могли бы сделать что-то эффект:
MyGlobalTimer.sharedTimer.startTimer()
MyGlobalTimer.sharedTimer.stopTimer()
let firedCounter = MyGlobalTimer.sharedTimer.numberOfTimesFired
редактировать
Как это работает:
MyGlobalTimer
класс является singleton class
который конкретизируется по телефону MyGlobalTimer.sharedTimer
. Это создает экземпляр и не может быть повторно создан в одном application instance
. Оттуда [Grand Central Dispatch][1]
используется для борьбы с таймером и аспектом резьбы.
Вы можете создать класс Timer ... Хотите, чтобы я вас показал? –
Это было бы здорово, если бы вы могли показать мне – Jared
Возможно, есть лучший способ сделать то, что вы пытаетесь сделать. – nhgrif