即使将 repeatInterval 设置为工作日后,UILocalNotification 也会每天触发

Posted

技术标签:

【中文标题】即使将 repeatInterval 设置为工作日后,UILocalNotification 也会每天触发【英文标题】:UILocalNotification triggers daily even after setting repeatInterval as weekday 【发布时间】:2016-02-29 20:09:39 【问题描述】:

我正在尝试为一周中特定日期的提醒创建本地通知。

这就是我到目前为止所做的目标

let calender = NSCalendar.currentCalendar()
        let notification = UILocalNotification()
        notification.soundName = UILocalNotificationDefaultSoundName

        notification.userInfo = NSDictionary(objects: [employee.deptID!], forKeys: [“deptID”]) as [NSObject : AnyObject]
        if #available(ios 8.2, *) 
            notification.alertTitle = employee.Name
         else 
        
        notification.alertBody = "Its time to remind you about today’s target"

let dc = calender.components([NSCalendarUnit.Weekday , NSCalendarUnit.Hour , NSCalendarUnit.Minute, NSCalendarUnit.Second], fromDate: timePicker.date)
                dc.weekday =  4
notification.repeatInterval = NSCalendarUnit.Weekday // TODO :
                notification.fireDate = calender.dateFromComponents(dc)
                UIApplication.sharedApplication().scheduleLocalNotification(notification)

但是,上面的代码每天都会在那个特定时间触发。我希望在特定工作日的特定时间触发通知。

上面的代码有什么错误?

【问题讨论】:

您可能忘记删除之前的日程安排通知 不。我什至卸载了该应用程序。清除所有通知。 所以您是说您删除了所有日程安排通知并且您每天都收到它? 顺便说一句,您需要将通知 timeZone 属性设置为当前时区 OP,你有没有想过这个问题?我也有同样的问题。 【参考方案1】:

尝试改变

notification.repeatInterval = NSCalendarUnit.Weekday

notification.repeatInterval = NSCalendarUnit.WeekOfYear

【讨论】:

嗨,这甚至没有触发。我希望通知在每个星期三的特定时间触发。

以上是关于即使将 repeatInterval 设置为工作日后,UILocalNotification 也会每天触发的主要内容,如果未能解决你的问题,请参考以下文章

在本地通知中设置repeatInterval

iPhone - UILocalNotification 作为警报

如何将本地通知重复间隔设置为自定义时间间隔?

即使不将其添加为子视图,设置为 TableViewController 的刷新控件也可以工作

如何将本地通知重复间隔设置为自定义时间间隔?

错误:即使 @TargetApi 设置为 18,当我使用 getRunningTasks 时,我的应用程序也会停止工作