我正在尝试使用这些值设置UILocalNotification的repeatingInterval,但是,像往常一样,Apple文档模糊不清。
任何线索?
感谢。
答案 0 :(得分:4)
或许关于这个问题看看this blog I just found?
AFAIK,NSCalendarUnits
主要用于将日期或时间间隔拆分为日期组件(NSDateComponents
),以提取日期的工作日,日期的年份,时间的小时组件等等。
在此背景下:
NSWeekCalendarUnit
对应于当年的周指数(从第1周到第52周 - 或53周的53周)NSWeekdayCalendarUnit
对应于一周中的一天(从星期一到太阳)NSDayCalendarUnit
对应于一年中的某一天(从1到365)当使用带有repeatingInterval
的NSCalendarUnit类型时,当相应的单位发生变化时,将触发UILocalNotification:
NSWeekCalendarUnit
将每周(每7天)触发一次通知NSWeekdayCalendarUnit
将触发“每个工作日”的通知,这与NSDayCalendarUnit
对应的内容对应于repeatInterval上下文中的“每一天”。答案 1 :(得分:2)
Cocoa和Objective-C可以轻松敲定快速测试程序以查看结果。如果您不确定文档,可以随时自行检查。我有一个构建基础命令行工具的项目,我只需将这些片段输入main.m并记录它们以查看API返回的内容。
例如,我刚刚运行了这个:
unsigned flags = NSWeekCalendarUnit;
NSDateComponents *components = [[NSCalendar currentCalendar] components:flags fromDate:[NSDate date]];
NSLog(@"Week: %ld", [components week]);
flags = NSWeekdayCalendarUnit;
components = [[NSCalendar currentCalendar] components:flags fromDate:[NSDate date]];
NSLog(@"WeekDay: %ld", [components weekday]);
得到了
Week: 37
Weekday: 7
很快就会看到WeekCalendar单位将其作为一年中的第37周,而WeekDay说这(今天是星期六)是一周的第7天('我知道公历是星期日为第1天)
答案 2 :(得分:0)
NSWeekdayCalendarUnit意味着每个星期日的通知都会出现。
NSWeekCalendarUnit表示您的通知每到第7天