NSCalendarUnitWeekOfYear和NSCalendarUnitWeekOfMonth之间的区别

我想在UILocalNotification之前每周做一个UILocalNotification重复我会使用localNotification.repeatInterval = NSWeekCalendarUnit – 除了NSWeekCalendarUnit已被弃用。

文档说:

“使用NSCalendarUnitWeekOfMonth或NSCalendarUnitWeekOfYear,取决于你的意思是”

但我不知道有什么不同,所以我不知道我是哪一个。

这些似乎没有被logging,但很可能NSCalendarUnitWeekOfYear将是代表日历年内的星期编号的1-53(或者可能是0-52)的值,而NSCalendarUnitWeekOfMonth将代表1-5(或者可能是0-4)一个月内的一周。

这一切都假定公历。 我不能说其他的日历types。

看来NSCalendarUnitWeekOfMonth等于kCFCalendarUnitWeekOfMonth ,它被定义为“指定一个月份的原始星期单位”。 而NSCalendarUnitWeekOfYear等于kCFCalendarUnitWeekOfYear ,它定义为“指定年份日历单元的原始星期”。

至于UILocalNotification

应使用NSCalendarUnitWeekOfYear作为repeatInterval的单位。

当我设置repeatInterval = NSCalendarUnitWeekOfMonth为从现在10秒的通知计划,通知不会触发,并且UILocalNotification的实例的UILocalNotification打印.. next fire date = (null) ...

如果我使用NSCalendarUnitWeekOfYear则会出现通知,并在通知描述中的代码中看到正确的下一个启动date。