Difference between NSCalendarUnitWeekOfYear & NSCalendarUnitWeekOfMonth

孤街醉人 提交于 2019-11-28 02:55:59

问题


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.


回答1:


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 while NSCalendarUnitWeekOfMonth 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 to kCFCalendarUnitWeekOfMonth which is defined as "Specifies the original week of a month calendar unit." and NSCalendarUnitWeekOfYear is equal to kCFCalendarUnitWeekOfYear which is defined as "Specifies the original week of the year calendar unit.".




回答2:


As for the UILocalNotification

NSCalendarUnitWeekOfYear should be used as a unit for repeatInterval.

When I set repeatInterval = NSCalendarUnitWeekOfMonth for the notification scheduled 10 seconds from now, the notification doesn't fire, and the description of the instance of UILocalNotification 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.



来源:https://stackoverflow.com/questions/22341048/difference-between-nscalendarunitweekofyear-nscalendarunitweekofmonth

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!