我的应用程序必须每隔n天提醒用户一些事情。
目前,我有
var dateComponents = DateComponents()
dateComponents.hour = userHour
dateComponents.minute = userMinute
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
我的问题是我不知道如何用DateComponents来表达日期的跳过。
我发现UNTimeIntervalNotificationTrigger
允许我每隔24或48等小时关闭它,但这使我有可能在某个白天开火。
我应该混合那些2吗?首先设置日历触发器,并在第一个通知中使它实际重复?对我来说似乎不对,必须有一个更简单的方法。
答案 0 :(得分:2)
我深入研究了iOS本地通知,并且有些东西奇怪地缺席。据我所知,这是其中之一。
如果您不需要设置触发通知的特定时间,可以使用UNTimeIntervalNotificationTrigger,这样您就可以在设置通知后每72小时设置一次通知。
如果您需要确切的通知时间,您可以使用您的代码,但添加dateComponents.weekday并设置1和4或其他。哪个不完美,但可能适合您的需要。
需要做更多工作的解决方案是创建5个通知。设置您希望它们触发的日期和时间(3天,6天,9天等)然后当用户启动应用程序时,您会查看是否已发送任何通知并在将来再次设置它们。这些不会重复。每次都要手动设置它们。