我發現這個代碼在Swift 3的另一個線程(顯示在最下面),似乎無法讓它在我的IOS項目中工作。我知道這是一個Singleton,但我不得不承認,我不知道如何在我的iOS項目中使用它,以便計時器可以在所有ViewController中工作。如何將這個Swift 3 Singleton作爲IOS項目的全局定時器?
我可以做以下嗎?如果不是,我該如何使用它?
var t = TimeModel.sharedTimer
t.startTimer(0.25, testing)
var counter = 0
func testing()
{
counter += 1
print("this is a test \(counter)")
}
我在做什麼錯了?
class TimerModel: NSObject {
static let sharedTimer: TimerModel = {
let timer = TimerModel()
return timer
}()
var internalTimer: Timer?
var jobs = [() -> Void]()
func startTimer(withInterval interval: Double, andJob job: @escaping() -> Void) {
if internalTimer == nil {
internalTimer?.invalidate()
}
jobs.append(job)
internalTimer = Timer.scheduledTimer(timeInterval: interval, target: self, selector: #selector(doJob), userInfo: nil, repeats: true)
}
func pauseTimer() {
guard internalTimer != nil else {
print("No timer active, start the timer before you stop it.")
return
}
internalTimer?.invalidate()
}
func stopTimer() {
guard internalTimer != nil else {
print("No timer active, start the timer before you stop it.")
return
}
jobs = [()->()]()
internalTimer?.invalidate()
}
func doJob() {
for job in jobs {
job()
}
}
}
您遇到了什麼問題?怎麼了?你想要發生什麼?你有什麼錯誤嗎? – Paulw11
是的。我得到Xcode紅旗,它不會編譯。 –
請[edit](http://stackoverflow.com/posts/43838466/edit)您的問題,以顯示這些錯誤。 – Paulw11