I want to make a UILocalNotification
repeat every week, before iOS7 I would use localNotification.repeatInterval = NSWeekCalendarUnit
- except NSWeekCalendarUnit
has been deprecated.
The docs say:
"Use NSCalendarUnitWeekOfMonth or NSCalendarUnitWeekOfYear, depending on which you mean"
But I don't know what the difference is, so I don't know which one I mean.
As for the
UILocalNotification
NSCalendarUnitWeekOfYear
should be used as a unit forrepeatInterval
.When I set
repeatInterval = NSCalendarUnitWeekOfMonth
for the notification scheduled 10 seconds from now, the notification doesn't fire, and the description of the instance ofUILocalNotification
prints.. next fire date = (null) ...
If I use
NSCalendarUnitWeekOfYear
then notification appears and I see correct next fire date from code in the notification's description.These don't appear to be documented but most likely
NSCalendarUnitWeekOfYear
will be a value from 1-53 (or maybe 0-52) representing the week number within the calendar year whileNSCalendarUnitWeekOfMonth
will be 1-5 (or maybe 0-4) representing the week within the month.This all assumes Gregorian calendar. I can't speak to other calendar types.
It seems that
NSCalendarUnitWeekOfMonth
is equal tokCFCalendarUnitWeekOfMonth
which is defined as "Specifies the original week of a month calendar unit." andNSCalendarUnitWeekOfYear
is equal tokCFCalendarUnitWeekOfYear
which is defined as "Specifies the original week of the year calendar unit.".