Определите, произошло ли изменение дня - PullRequest
9 голосов
/ 05 ноября 2011

Я хотел бы создать уведомление, которое происходит каждый раз, когда новый день происходит локально (или при использовании приложения, или если это происходит между запусками). Мне было интересно, что может быть лучшим способом наблюдать за этим изменением.

Ответы [ 4 ]

14 голосов
/ 05 ноября 2011

Пока ваше приложение работает, вы можете прослушать уведомление UIApplicationSignificantTimeChangeNotification и проверить текущий день, когда вы его получите.Когда ваше приложение закрывается, вы можете сохранить текущий день в своих предпочтениях, а когда приложение запускается снова, вы можете проверить сохраненный день по отношению к текущему дню.

Вы можете получить информацию о текущем дне, используя NSDateComponents .

7 голосов
/ 18 июня 2014

Как уже упоминалось в другом потоке , начиная с iOS8, вы также можете напрямую прослушивать NSCalendarDayChangedNotification.

1 голос
/ 05 ноября 2011

Выезд: Эрика Садун Утилиты времени

Есть несколько полезных методов для проверки дат.

В качестве альтернативы вы можете посмотреть UILocalNotifcations

Вы можете запланировать локальное уведомление с repeatInterval, равным одному дню.

Все зависит от того, что вы хотите сделать, но это некоторые варианты.

0 голосов
/ 05 ноября 2011

Я бы, вероятно, сделал две вещи:

  1. Во время работы приложения установите NSTimer для опроса текущей даты [NSDate date] с заданным интервалом.Сохраните значение последней даты где-нибудь (даже в пользовательских значениях по умолчанию), а затем сравните новое время с сохраненным временем, чтобы проверить новый день.

  2. При закрытии / выходе из приложения, сохраните текущую дату и время таким же образом, как указано выше.Затем при запуске приложения или выводе его на передний план проверьте текущую дату по сохраненной дате.

Для этого пригодятся NSDateComponents, NSCalendar и NSDate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...