Ich benutze einen NSTimer in einer iOS App im Hintergrund, die einige Daten alle 30 Sekunden in einem Array speichert. Die App zeigt die letzten 10 Werte (Werte von 5 Minuten) in einem Liniendiagramm an.NSTimer mit Zeichnung barChart im Hintergrund
Mein Problem ist es, die Funktion des Speicherns von Daten in das Array alle 30 Sekunden auch im Hintergrund, wenn die App nicht auf dem Bildschirm ist. Ich habe eine Menge Themen dazu geschrieben, aber ich verstehe es nicht.
Mein Timer ist die folgende:
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: (#selector(ViewController.counting)), userInfo: nil, repeats: true)
func counting() {
timerCounter += 1 //Int
if timerCounter%30==0 {
arrayOfValues.append(...) //Appending the array
reloadLineChart() // reload chart
}
}
Könnte mir jemand zeigen, wie dieses Problem zu lösen? Ich weiß, da muss etwas mit den background-Methoden im ViewController sein, aber jetzt nicht was ich eintippen soll. Ich denke, es muss eine Funktion geben, die im Hintergrund zählt und eine Funktion, die das Diagramm neu lädt, wenn ich bin wieder in der App.
Vielen Dank. Das ist klar. :) Aber mein Problem ist, dass ich auf Methoden von meiner ViewControllerClass in AppDelegate zugreifen möchte, weil der Timer dort definiert ist. – FranzFerdinand