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
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.
I pewnie zrobić dwie rzeczy:
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ń.
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.
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.
Jak wspomniano w other thread, od wersji iOS8 można również bezpośrednio odsłuchiwać NSCalendarDayChangedNotification.
- 1. Clojure: ustal, czy istnieje funkcja
- 2. Ustal, czy typ jest statyczny.
- 3. Ustal, czy mapa zawiera wartość klucza?
- 4. Ustal, czy obiekt jest liczbą całkowitą
- 5. Ustal, czy data Oracle jest weekendem?
- 6. Ustal, czy widok jest na ekranie - Android
- 7. Ustal, czy znak jest liczbą lub literą
- 8. Ustal, czy podgląd jest widoczny w UIScrollView
- 9. Ustal, czy karta przeglądarki jest aktywna? - IE?
- 10. Ustal, czy pasek akcji jest podzielony
- 11. Ustal, czy wartość JavaScript to "liczba całkowita"?
- 12. Ustal, czy ciąg znaków jest "pusty".
- 13. Ustal, czy mój komputer obsługuje wirtualizację sprzętową
- 14. php - ustal, czy DateTime przypada na DateInterval
- 15. Ustal, czy data jest sobotą czy niedzielą przy użyciu JavaScriptu
- 16. Ustal, czy pole wyboru dostępu jest sprawdzane, czy nie
- 17. Ustal, czy urządzenie ma ekran dotykowy czy nie.
- 18. Ustal, czy wykres jest częściowo połączony czy nie
- 19. Ustal, kto oddał wydarzenie
- 20. JavaScript - znajdź datę następnej zmiany czasu (standardowa lub dzienna)
- 21. Ustal, która wersja OpenCV
- 22. Pobierz DataData dzienna Tydzień/dzień Jednoręcznie jako ciąg
- 23. Ustal poziom zagnieżdżenia w R?
- 24. Ustal, czy ciąg zawiera ciąg znaków base64 wewnątrz niego
- 25. Ustal, czy punkt znajduje się w ramce ograniczającej
- 26. C# Ustal, czy obiekt jest obecny na obrazku:
- 27. Ustal, czy naciśnięty został klawisz Shift podczas mousedown zdarzenia
- 28. Ustal, czy lokalizacja pamięci znajduje się w pamięci podręcznej CPU
- 29. Ustal, czy programowo jest włączone tworzenie kopii zapasowej całego systemu.
- 30. Ustal, czy adres URL jest bezwzględny lub względny od vb