UNCalendarNotificationTrigger每隔3天?

时间:2018-04-25 16:30:26

标签: swift uilocalnotification nsdatecomponents

我的应用程序必须每隔n天提醒用户一些事情。

目前,我有

var dateComponents = DateComponents()
dateComponents.hour = userHour
dateComponents.minute = userMinute
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)

我的问题是我不知道如何用DateComponents来表达日期的跳过。

我发现UNTimeIntervalNotificationTrigger允许我每隔24或48等小时关闭它,但这使我有可能在某个白天开火。

我应该混合那些2吗?首先设置日历触发器,并在第一个通知中使它实际重复?对我来说似乎不对,必须有一个更简单的方法。

1 个答案:

答案 0 :(得分:2)

我深入研究了iOS本地通知,并且有些东西奇怪地缺席。据我所知,这是其中之一。

如果您不需要设置触发通知的特定时间,可以使用UNTimeIntervalNotificationTrigger,这样您就可以在设置通知后每72小时设置一次通知。

如果您需要确切的通知时间,您可以使用您的代码,但添加dateComponents.weekday并设置1和4或其他。哪个不完美,但可能适合您的需要。

需要做更多工作的解决方案是创建5个通知。设置您希望它们触发的日期和时间(3天,6天,9天等)然后当用户启动应用程序时,您会查看是否已发送任何通知并在将来再次设置它们。这些不会重复。每次都要手动设置它们。