Ich habe diesen Code in einem anderen Thread (ganz unten) für Swift 3 gefunden und es scheint nicht zu funktionieren in meinem IOS-Projekt.Wie kann ich diesen Swift 3 Singleton als globalen Timer für mein IOS-Projekt verwenden?
Ich weiß, es ist ein Singleton, aber ich muss zugeben, ich bin mir nicht sicher, wie man es in meinem IOS-Projekt verwendet, so dass der Timer über alle ViewController funktioniert.
Kann ich Folgendes tun? Und wenn nicht, wie kann ich das benutzen?
var t = TimeModel.sharedTimer
t.startTimer(0.25, testing)
var counter = 0
func testing()
{
counter += 1
print("this is a test \(counter)")
}
Was mache ich falsch?
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()
}
}
}
Welche Probleme haben Sie? Was geschieht? Was willst du passieren? Erhalten Sie irgendwelche Fehler? – Paulw11
Ja. Ich bekomme Xcode rote Flags und es wird nicht kompilieren. –
Bitte [bearbeiten] (http://stackoverflow.com/posts/43838466/edit) Ihre Frage, um diese Fehler zu zeigen. – Paulw11