2011-11-04 7 views
9

Chciałbym utworzyć powiadomienie, które pojawia się za każdym razem, gdy nowy dzień wystąpił lokalnie (podczas korzystania z aplikacji lub w przypadku jej wystąpienia pomiędzy uruchomieniami). Zastanawiałem się, jaki może być najlepszy sposób na obserwowanie tej zmiany.Ustal, czy nastąpiła zmiana dzienna

Odpowiedz

13

Gdy aplikacja jest uruchomiona, możesz wysłuchać powiadomienia o UIApplicationSignificantTimeChangeNotification i przetestować bieżący dzień, kiedy to otrzymasz. Po zamknięciu aplikacji możesz zapisać bieżący dzień w swoich preferencjach, a gdy aplikacja zostanie ponownie uruchomiona, możesz przetestować zapisany dzień w bieżącym dniu.

Możesz uzyskać informacje o bieżącym dniu, korzystając z NSDateComponents.

0

I pewnie zrobić dwie rzeczy:

  1. Podczas gdy aplikacja jest uruchomiona, posiadają zestaw NSTimer do wzywania aktualną datę [NSDate date] w danym przedziale. Zapisz wartość ostatniej daty w dowolnym miejscu (nawet w domyślnych ustawieniach użytkownika), a następnie porównaj nowy czas z przechowywanym czasem, aby sprawdzić nowy dzień.

  2. Podczas zamykania/zamykania aplikacji, przechowuj bieżącą datę i godzinę w ten sam sposób powyżej. Następnie, po uruchomieniu aplikacji lub przeniesieniu jej na pierwszy plan, sprawdź bieżącą datę w stosunku do daty przechowywania.

NSDateComponents, NSCalendar i NSDate przydadzą się do tego.

1

Check out: Erica Sadun Time Utililties

Istnieje kilka przydatnych metod tam sprawdzania dat.

Alternatywnie można spojrzeć na UILocalNotifcations

Można zaplanować lokalnym powiadomienia o repeatInterval jednego dnia.

Wszystko zależy od tego, co chcesz zrobić, ale jest kilka opcji.

Powiązane problemy