如何在工作日的选择列表上设置重复的 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 通知的主要内容,如果未能解决你的问题,请参考以下文章

UILocal 通知未显示

excel如何检索重复内容

获取即将到来的指定日期的日期

ListView如何清除选择[重复]

在从 PHP 数组填充的 JQuery HTML 选择列表上设置 SELECTED 属性 [重复]

Pyspark 在元组列表上设置