Я пытаюсь добавить событие в пользовательский календарь.
Чтобы получить список календарей, который я использовал ниже
EKEventStore *eventStore = [[EKEventStore alloc] init];
[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
if(!granted) {
//error alert
return;
}
NSArray *calendars = [eventStore calendarsForEntityType:EKEntityTypeEvent];
// List of all calendars
// Let user to choose a calendar.
}];
Для добавления события я использовал приведенный ниже код
-(void)addEvent:(EventStoreClass *)storeObject
{
EKEventStore *store = [[EKEventStore alloc] init];
[store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
if (!granted) return;
EKEvent *event = [EKEvent eventWithEventStore:store];
[event setTitle:[storeObject eventTitle]];
[event setStartDate:[storeObject eventStartDate]];
[event setEndDate:[storeObject eventEndDate]];
[event setCalendar:[storeObject calendar] ? [storeObject calendar] : [store defaultCalendarForNewEvents]];
[store saveEvent:event span:EKSpanThisEvent commit:YES error:nil];
}];
}
Теперь, когда я использовал календарь по умолчанию, он был успешно добавлен, но когда я выбираю любой другой календарь, приложение падает, и в журнале отображается
*** -[EKSource сохранить]: сообщение отправлено на освобожденный экземпляр 0x7f9bddb1bf50.
Я не могу выяснить точную проблему или для какой линии эта проблема возникает. Любой совет будет ценен.
requestAccessToEntityType:completion:
является асинхронным, возможно, вам придется определитьstore
как свойствоstrong
. - person Larme   schedule 26.05.2015