Разница между NSCalendarUnitWeekOfYear и NSCalendarUnitWeekOfMonth
Я хочу сделать UILocalNotification
повторять каждую неделю, перед iOS7 я бы использовал localNotification.repeatInterval = NSWeekCalendarUnit
- Кроме NSWeekCalendarUnit
был объявлен устаревшим
Документы говорят:
"Используйте NSCalendarUnitWeekOfMonth или NSCalendarUnitWeekOfYear, в зависимости от того, что вы имеете в виду"
Но я не знаю, в чем разница, поэтому я не знаю, какой я имею в виду.
2 ответа
Это не документировано, но скорее всего NSCalendarUnitWeekOfYear
будет значение от 1 до 53 (или, возможно, от 0 до 52), представляющее номер недели в течение календарного года, в то время как NSCalendarUnitWeekOfMonth
будет 1-5 (или, возможно, 0-4), представляя неделю в течение месяца.
Это все предполагает григорианский календарь. Я не могу говорить с другими типами календаря.
Кажется, что NSCalendarUnitWeekOfMonth
равно kCFCalendarUnitWeekOfMonth
который определяется как "Определяет исходную неделю календарной единицы месяца". а также NSCalendarUnitWeekOfYear
равно kCFCalendarUnitWeekOfYear
который определяется как "Определяет исходную календарную единицу недели года".
Для UILocalNotification
NSCalendarUnitWeekOfYear
следует использовать в качестве единицы для repeatInterval
,
Когда я установил repeatInterval = NSCalendarUnitWeekOfMonth
для уведомления, запланированного через 10 секунд, уведомление не запускается, и описание экземпляра UILocalNotification
печать .. next fire date = (null) ...
Если я использую NSCalendarUnitWeekOfYear
затем появляется уведомление, и я вижу правильную дату следующего запуска из кода в описании уведомления.