2013-01-03 4 views
6

ich eine Erinnerung aus meiner app erstellen möchten, also habe ich eine Erinnerung (EKReminder) und richten Sie einen Alarm erstellt:EventKit: Erinnerungen dueDateComponents vs Alarm

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

aber ich sehe, gibt es auch eine dueDateComponents Eigentum auf EKReminder. Was ist der Unterschied zwischen dem Einstellen eines Alarms und den dueDateComponents?

Auch dort gibt es eine Methode, um einen Alarm zu erstellen: alarmWithRelativeOffset:(NSTimeInterval)offset aber die Dokumente sagen, das Offset-Argument kann negativ sein, wie ist es möglich, einen Alarm in der Vergangenheit zu haben?

Antwort

8

ein EKReminder Element ähnelt einer Aufgabe in einer ToDo-Liste mit optionalem Startdatum und Fälligkeitsdatum. Mit der Eigenschaft dueDateComponents können Sie angeben, wann eine Aufgabe abgeschlossen werden soll. So können Sie beispielsweise überfällige Artikel anzeigen. Dies ist informativ und getrennt von einem Alarm.

Wenn Sie einen Alarm für eine Erinnerung einrichten, wird die Erinnerung benachrichtigt, wenn der Alarm ausgelöst wird.

Ich denke, das ist etwas verwirrend, weil die App Reminders nicht zulässt, dass Sie ein Fälligkeitsdatum, nur ein Alarmdatum festlegen können. In diesem Blogbeitrag wird jedoch gezeigt, wie Sie ein Fälligkeitsdatum, aber kein Erinnerungsdatum auf icloud.com setzen konnten: http://blog.truthdialogue.com/2012/07/setting-due-dates-in-the-os-x-mountain-lion-reminders-app.html. Es sieht so aus, als ob Apple die Apps seit der Entwicklung der API vereinfacht hat.

Der Offset für alarmWithRelativeOffset: bezieht sich auf das Startdatum/die Startzeit eines Ereignisses. So können Sie beispielsweise festlegen, dass ein Alarm x Minuten vor einem Ereignis ausgelöst wird.

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

Während dieser Code die Frage beantworten kann, zusätzlichen Kontext in Bezug auf, warum und/oder wie dieser Code beantwortet die Frage ihren langfristigen Wert verbessert. –