2013-01-03 12 views
6

Voglio creare un promemoria dalla mia app, così ho creato un promemoria (EKReminder) e impostare un allarme:EventKit: promemoria dueDateComponents vs allarme

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

ma vedo c'è anche un dueDateComponents proprietà su EKReminder. Qual è la differenza tra l'impostazione di un allarme e di due componentiDate?

C'è anche un metodo per creare un allarme: alarmWithRelativeOffset:(NSTimeInterval)offset ma i documenti dicono che l'argomento di offset può essere negativo, come è possibile avere un allarme in passato?

risposta

8

a EKReminder l'elemento è un po 'come un'attività in un elenco di cose da fare con una data di inizio e una data di scadenza opzionali, la proprietà dueDateComponents consente di specificare quando un'attività deve essere completata. Ti consentirà di mostrare gli articoli scaduti, ad esempio. Questo è informativo ed è separato da un allarme.

L'impostazione di un avviso su un promemoria farà sì che l'app Promemoria avvisi l'utente quando scatta l'allarme.

Immagino che questo sia un po 'confuso perché l'app Promemoria non sembra consentire di impostare una data di scadenza, solo una data di allarme. Tuttavia su questo post del blog mostra come eravate in grado di impostare una data di scadenza ma nessuna data di promemoria su icloud.com: http://blog.truthdialogue.com/2012/07/setting-due-dates-in-the-os-x-mountain-lion-reminders-app.html. Sembra che Apple abbia semplificato le app da quando è stata sviluppata l'API.

L'offset per alarmWithRelativeOffset: è dalla data/ora di inizio di un evento. In questo modo è possibile impostare un allarme che si attiva x minuti prima di un evento, ad esempio.

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

Anche se questo codice può rispondere alla domanda, fornendo un contesto aggiuntivo per quanto riguarda il motivo per cui e/o come questo codice risponde alla domanda migliora il suo valore a lungo termine. –