如何在工作日的选择列表上设置重复的 UILocal 通知
Posted
技术标签:
【中文标题】如何在工作日的选择列表上设置重复的 UILocal 通知【英文标题】:How to set the repeat UILocal Notifications on the select list of Weekdays 【发布时间】:2013-03-11 15:33:48 【问题描述】:我已使用以下链接实现 UILocal 通知
http://useyourloaf.com/blog/2010/07/31/adding-local-notifications-with-ios-4.html
我已经修改它以使用每天设置重复通知
//To set the repeat notification
notif.repeatInterval = NSDayCalendarUnit;
例如 每天上午 10 点
但我的要求是用户需要在选定的工作日(周一至周六)设置通知
为什么因为用户可能有每周假期,例如(周六和周日)/周五 - 周日)/其他一些日子..
在week offs he shouldn't fire the notifications.
因此,我们鼓励用户设置选定的工作日,并且通知将仅在这些天设置。一旦用户设置了通知。
For ex:
我们有工作日列表,周日、周一、周二、周三、周四、周五、周六
在那些用户选择星期一、星期二、星期三、星期四。并设置为上午 10 点
然后通知将在这些天的每天上午 10 点触发。
怎么做
【问题讨论】:
【参考方案1】:UILocalNotification 的 API 在这方面非常有限 - 您必须手动安排 4 个事件,在用户选择的日期每周重复一次。
为星期一安排重复计时器的示例如下所示
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
dateComponents.weekday = 2; // sunday = 1 ... saturday = 7
dateComponents.hour = 10;
UILocalNotification *notification = //...
notification.repeatInterval = NSWeekCalendarUnit;
notification.fireDate = [calendar dateFromComponents:dateComponents];
天数可以在NSDateComponents Class Reference找到
【讨论】:
由于 NSWeekCalendarUnit 现已贬值,安排每周重复的正确方法是什么? 在附近的文档中显示已弃用它,它说Use NSCalendarUnitWeekOfMonth or NSCalendarUnitWeekOfYear instead.
我已经尝试了这两种方法,但都没有为我工作。
从头开始,NSCalendarUnitWeekOfYear 现在似乎工作正常。
@Luke Irvin:您能在这里发布您的工作代码吗?Paul.s 的答案看起来不错,在手动计时器中完成这项工作感到困惑?以上是关于如何在工作日的选择列表上设置重复的 UILocal 通知的主要内容,如果未能解决你的问题,请参考以下文章