Ich führe den folgenden Code aus, damit der Benutzer mehrere Kalender für meine Notizblock-App auswählen kann. Bis iOS 10.3.1 gab es kein Problem. Unter 11.0.2 funktionierte es noch an aktiven Geräten. Seit 11.1 stürzt es jedoch mit dem folgenden Fehler ab.EKCalendarChooser stürzt auf iOS11.1 ab.
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKeyedSubscript:]: key cannot be nil'
Der Code ist wie folgt. Im Grunde öffne ich eine leere Kalenderauswahl.
if (_eventStore == nil) {
_eventStore = [[EKEventStore alloc] init];
}
// the selector is available, so we must be on iOS 6 or newer
[_eventStore requestAccessToEntityType:EKEntityTypeEvent
completion:^(BOOL granted, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
if (error)
{
// display error message here
}
else if (!granted)
{
// display access denied error message here
}
else
{
// access granted
EKCalendarChooser *calendarChooser = [[EKCalendarChooser alloc]
initWithSelectionStyle:EKCalendarChooserSelectionStyleMultiple
displayStyle:EKCalendarChooserDisplayAllCalendars
eventStore:_eventStore];
calendarChooser.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
calendarChooser.delegate = self;
calendarChooser.showsCancelButton = YES;
calendarChooser.showsDoneButton = YES;
NSSet *calendarSet = [[NSSet alloc] init];
calendarChooser.selectedCalendars = calendarSet;
UINavigationController *sub = [[UINavigationController alloc] initWithRootViewController:calendarChooser];
sub.navigationBar.barStyle = UIBarStyleDefault;
sub.toolbar.barStyle = UIBarStyleDefault;
[self presentViewController:sub animated:YES completion:nil];
//ios11 crashes after this
}
});
}];
Danke für Ihre Hilfe.
Ran in das gleiche Problem. Das ist wirklich schlecht, wenn ich nur auf beschreibbare Kalender zugreifen kann. –
Ja, absolut schrecklich. Zumindest Apple wird bestätigt, dass es Probleme gibt. (Das Initialisieren eines EKCalendarChooser von EventKit kann zu einem Absturz der App führen. (34608102)) https://developer.apple.com/library/content/releasenotes/General/RN-iOS-11.1/index.html#//apple_ref/doc/uid/TP40017683-CH1-SW1 – yoshitech
Ich habe an diesem Wochenende einen weiteren Fehler gefunden. Wenn Sie ein EKEvent mit einer Start- und Endzeit zwischen 1 Uhr morgens und 2 Uhr morgens während der Änderung der Herbstzeit speichern, wenn die Uhrzeit das zweite Auftreten von 1 Uhr morgens bis 2 Uhr nachts ist, subtrahiert die Datenbank eine Stunde bis zur Endzeit (aber nicht die Startzeit). was zu einem Ereignis führt, das nach dem Ende beginnt. Ich habe einen Fehlerbericht eingereicht, aber ich bin neugierig, ob noch jemand diesen Fehler reproduzieren kann. Beachten Sie, dass Sie das unformatierte Datum abfragen müssen, da beide Datumsangaben dasselbe unter Verwendung des Gebietsschema-Datumsformats formatieren. –