2013-01-03 92 views
6

我要創建我的應用程序的提醒,所以我創建了一個提醒(EKReminder),並設置了一個警鐘:EventKit:提醒dueDateComponents VS報警

NSTimeInterval timeInterval = 100000; 
NSDate *alarmDate = [NSDate dateWithTimeIntervalSinceNow:timeInterval]; 
EKAlarm *alarm = [EKAlarm alarmWithAbsoluteDate:alarmDate]; 
[reminder setAlarms:@[alarm]]; 

但我看到也有dueDateComponents EKReminder的財產。設置鬧鐘和dueDateComponents有什麼區別?

此外還有一個方法來創建一個鬧鐘:alarmWithRelativeOffset:(NSTimeInterval)offset但文檔說偏移參數可以是負數,如何有可能在過去發出警報?

回答

8

a EKReminder項目與待辦事項列表中的任務類似,具有可選的開始日期和截止日期,dueDateComponents屬性允許您指定應完成任務的時間。例如,它會允許您顯示過期的項目。這是信息性的,與警報分開。

上的提醒設置鬧鐘會引起提醒應用程序時,警報響起時通知用戶。

我想這是稍顯混亂,因爲提醒應用程序不會出現讓你設定一個截止日期,只有報警日期。然而在這篇博客展示瞭如何使用能夠設置一個截止日期,但是,icloud.com沒有提醒日期:http://blog.truthdialogue.com/2012/07/setting-due-dates-in-the-os-x-mountain-lion-reminders-app.html。看起來,自從API開發以來,Apple已經簡化了應用程序。

alarmWithRelativeOffset:偏移量是從事件的開始日期/時間。因此,您可以在事件發生前的x分鐘設置鬧鐘,例如。

0
EKAlarm *reminder = [EKAlarm alarmWithRelativeOffset:-00]; 
     [event addAlarm:reminder]; 
0
let alarmist : EKAlarm = EKAlarm() 
alarmist.relativeOffset = -0 
reminder.addAlarm(alarmist) 
NSLog("reminder has alarm ->" + reminder.hasAlarms.description) 
+0

儘管此代碼可以回答這個問題,提供有關爲什麼和/或如何代碼回答了這個問題提高了其長期價值的其他方面。 –