Wie gehe ich mit Zeitereignissen auf iOS um?

7

Ich schreibe eine iPad-App, und ich muss eine Grafik ändern, wenn sich der Tag in Sonntag ändert.

Meine einfache Lösung besteht darin, den Tag in den Methoden - (void)applicationDidBecomeActive:(UIApplication *)application oder -(void)viewWillAppear:(BOOL)animated zu überprüfen und einen Timer wie alle 10 Minuten einzustellen, um zu überprüfen, ob sich der Tag auf Sonntag geändert hat, während die App aktiv ist.

Gibt es einen anderen, vielleicht effizienteren Weg, damit umzugehen?

    
Ecarrion 15.11.2011, 16:41
quelle

5 Antworten

13

Implementieren Sie in Ihrem Anwendungsdelegaten die folgende Methode: -(void)applicationSignificantTimeChange:(UIApplication *)application

Diese Methode wird aufgerufen, wenn sich der Tag ändert oder wenn die Uhrzeit des Geräts aus irgendeinem Grund im Hintergrund geändert wurde (z. B. Änderungen der Zeitzone).

    
zeroimpl 16.11.2011, 01:59
quelle
4

Eine andere Option wäre, die beiden oben erwähnten Methoden "viewWillAppear:" und "applicationDidBecomeActive:" zu verwenden. Anstatt nur alle 10 Minuten einen Timer zu setzen, berechnen Sie einfach die Zeit zwischen der aktuellen Uhrzeit und dem nächsten Sonntag . Nehmen Sie dieses Zeitintervall und verwenden Sie es, um einen Timer einzustellen, der genau um Mitternacht am Sonntag feuern wird.

    
Carter 15.11.2011 16:51
quelle
1

Es gibt eine Benachrichtigung darüber, wann sich der Tag ändert. Sie könnten es hören und überprüfen, ob es Sonntag ist, wenn es feuert.

Sie sollten auch überprüfen, ob es Sonntag beim Start ist.

    
EmilioPelaez 15.11.2011 16:46
quelle
1

Was ist los mit dieser Lösung? Wird es an manchen Orten öfter als einmal alle 10 Minuten Sonntag?

Eine Sache, die Sie vielleicht in Betracht ziehen sollten: Wenn Sie in Ihrer Timer-Feuermethode nach 23:50 Uhr sind, planen Sie den Timer früher (dh um 00:00), so dass Sie eher Mitternacht genau erfassen / p>     

user23743 15.11.2011 16:47
quelle
1

Dieses Kapitel könnte sich als nützlich erweisen, wenn Sie eine Art Benachrichtigung zum Aktualisieren verwenden:

Ссылка

Obwohl ich selbst mit der gleichen Lösung gelandet bin, die Sie verwenden, ist es einfacher und zuverlässiger, finde ich.

    
Alan Moore 15.11.2011 16:50
quelle

Tags und Links