Suche…
Erlaubnis beantragen
Ihre App kann ohne Erlaubnis nicht auf Ihre Erinnerungen und Ihren Kalender zugreifen. Stattdessen muss der Benutzer eine Warnung erhalten, die ihn auffordert, Zugriff auf Ereignisse für die App zu gewähren.
Importieren Sie zunächst das EventKit Framework:
Schnell
import EventKit
Ziel c
#import <EventKit/EventKit.h>
Einen EKEventStore
Dann EKEventStore wir ein EKEventStore Objekt. Dies ist das Objekt, von dem aus wir auf Kalender- und Erinnerungsdaten zugreifen können:
Schnell
let eventStore = EKEventStore()
Ziel c
EKEventStore *eventStore = [[EKEventStore alloc] init];
Hinweis
Das
EKEventStoreeinesEKEventStoreObjekts bei jedem Zugriff auf den Kalender ist nicht effizient. Versuchen Sie es einmal zu erstellen und verwenden Sie es überall in Ihrem Code.
Verfügbarkeit überprüfen
Verfügbarkeit hat drei verschiedene Status: Autorisiert, Abgelehnt und Nicht bestimmt. Nicht bestimmt bedeutet, dass die App Zugriff gewähren muss.
Um die Verfügbarkeit zu prüfen, verwenden wir die Methode EKEventStore authorizationStatusForEntityType() des EKEventStore Objekts:
Schnell
switch EKEventStore.authorizationStatusForEntityType(EKEntityTypeEvent){
case .Authorized: //...
case .Denied: //...
case .NotDetermined: //...
default: break
}
Ziel c
switch ([EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent]){
case EKAuthorizationStatus.Authorized:
//...
break;
case EKAuthorizationStatus.Denied:
//...
break;
case EKAuthorizationStatus.NotDetermined:
//...
break;
default:
break;
}
Erlaubnis beantragen
NotDetermined Sie den folgenden Code in den NotDetermined Fall ein:
Schnell
eventStore.requestAccessToEntityType(EKEntityTypeEvent, completion: { [weak self] (userGrantedAccess, _) -> Void in
if userGrantedAccess{
//access calendar
}
}
Zugriff auf verschiedene Kalendertypen
Zugriff auf die Kalenderreihe
Für den Zugriff auf das Array von EKCalendar wir die Methode calendarsForEntityType :
Schnell
let calendarsArray = eventStore.calendarsForEntityType(EKEntityType.Event) as! [EKCalendar]
Iteration durch Kalender
Verwenden Sie einfach eine einfache for Schleife:
Schnell
for calendar in calendarsArray{
//...
}
Zugriff auf den Kalendertitel und die Farbe
Schnell
let calendarColor = UIColor(CGColor: calendar.CGColor)
let calendarTitle = calendar.title
Ziel c
UIColor *calendarColor = [UIColor initWithCGColor: calendar.CGColor];
NSString *calendarTitle = calendar.title;
Ereignis hinzufügen
Ereignisobjekt erstellen
Schnell
var event = EKEvent(eventStore: eventStore)
Ziel c
EKEvent *event = [EKEvent initWithEventStore:eventStore];
Einstellen des zugehörigen Kalenders, Titels und Datums
Schnell
event.calendar = calendar
event.title = "Event Title"
event.startDate = startDate //assuming startDate is a valid NSDate object
event.endDate = endDate //assuming endDate is a valid NSDate object
Ereignis zum Kalender hinzufügen
Schnell
try {
do eventStore.saveEvent(event, span: EKSpan.ThisEvent)
} catch let error as NSError {
//error
}
Ziel c
NSError *error;
BOOL *result = [eventStore saveEvent:event span:EKSpanThisEvent error:&error];
if (result == NO){
//error
}