Подтвердить что ты не робот

Разница между NSCalendarUnitWeekOfYear и NSCalendarUnitWeekOfMonth

Я хочу повторять UILocalNotification каждую неделю, до iOS7 я бы использовал localNotification.repeatInterval = NSWeekCalendarUnit - кроме NSWeekCalendarUnit устарел.

В документах говорится:

"Использовать NSCalendarUnitWeekOfMonth или NSCalendarUnitWeekOfYear, в зависимости от на котором вы имеете в виду"

Но я не знаю, в чем разница, поэтому я не знаю, что я имею в виду.

4b9b3361

Ответ 1

Они не отображаются, но, скорее всего, NSCalendarUnitWeekOfYear будет иметь значение от 1 до 53 (или, может быть, 0-52), представляющее номер недели в течение календарного года, тогда как NSCalendarUnitWeekOfMonth будет 1-5 ( или может быть 0-4), представляющих неделю в течение месяца.

Все это предполагает григорианский календарь. Я не могу говорить с другими типами календаря.

Кажется, что NSCalendarUnitWeekOfMonth равно kCFCalendarUnitWeekOfMonth, которое определяется как "Указывает исходную неделю месяца календарного блока". и NSCalendarUnitWeekOfYear равен kCFCalendarUnitWeekOfYear, который определяется как "Указывает исходную неделю календарного блока года".

Ответ 2

Что касается UILocalNotification

NSCalendarUnitWeekOfYear следует использовать как единицу для repeatInterval.

Когда я установил repeatInterval = NSCalendarUnitWeekOfMonth для уведомления, запланированного через 10 секунд, уведомление не срабатывает, а описание экземпляра UILocalNotification печатает .. next fire date = (null) ...

Если я использую NSCalendarUnitWeekOfYear, появится уведомление, и я вижу правильную следующую дату огня из кода в описании уведомления.