我想从我的应用程序创建一个提醒,所以我创建了一个提醒(EKReminder)并设置了一个警报:
NSTimeInterval timeInterval = 100000; NSDate *alarmDate = [NSDate dateWithTimeIntervalSinceNow:timeInterval]; EKAlarm *alarm = [EKAlarm alarmWithAbsoluteDate:alarmDate]; [reminder setAlarms:@[alarm]];
但我发现EKReminder上还有一个dueDateComponents属性.设置警报和dueDateComponents有什么区别?
还有一种方法可以创建一个警报:alarmWithRelativeOffset:(NSTimeInterval)偏移,但文档说偏移参数可以是负数,过去怎么可能有警报?
解决方法
EKReminder项类似于todo列表上的任务,具有可选的开始日期和截止日期,dueDateComponents属性允许您指定何时应完成任务.例如,它允许您显示过期的项目.这是信息性的,与警报分开.
我想这有点令人困惑,因为Reminders应用程序似乎不允许您设置截止日期,只设置警报日期.然而,在这篇博客文章中,它显示了您以前如何在icloud.com上设置截止日期但没有提醒日期:http://blog.truthdialogue.com/2012/07/setting-due-dates-in-the-os-x-mountain-lion-reminders-app.html.看起来Apple自API开发以来已经简化了应用程序.
alarmWithRelativeOffset:的偏移量来自事件的开始日期/时间.因此,您可以将警报设置为在事件发生前x分钟关闭.