Есть ли способ добавить идентификатор или тег пользовательского события, добавленного в iCal? - PullRequest
4 голосов
/ 18 февраля 2011

Я устанавливаю напоминание в моем приложении. Я добавил пользовательское событие, используя EKEvent к iCal. Теперь, когда я получаю события из iCal, я получаю все события, присутствующие в этот день. Есть ли способ получить / получить события, добавленные только через мое приложение, я пробовал eventIdentifier свойство EKEvent, но это свойство только для чтения. Кто-нибудь может помочь ???

Ответы [ 2 ]

3 голосов
/ 11 июля 2011

Вы можете перебрать все события календаря, которые соответствуют определенной дате, но это не предпочтительный метод. Каждое событие создается с уникальным свойством eventIdentifier. Когда вы сохраняете событие, вы можете скопировать eventIdentifier и в следующий раз, когда вы захотите изменить это конкретное событие, вы можете использовать метод EKEventStore eventWithIdentifier для загрузки вашего события.

Пример может выглядеть следующим образом

   EKEventStore *eventStore = [[EKEventStore alloc] init];
   NSError *err;
   EKEvent *event  = [EKEvent eventWithEventStore:eventStore];
   //modify all the event properties you would like then save
   [eventStore saveEvent:event span:EKSpanThisEvent error:&err];
   self.calendarEventID = event.eventIdentifier; 
   [eventStore release];

Позже, если вы хотите извлечь сохраненное событие из предыдущего кода, вы можете сделать следующее

   //self.calendarEventID is a NSString property declared in the .h file and synthesized in .m
   EKEvent *myEvent = [eventStore eventWithIdentifier:self.calendarEventID];
1 голос
/ 05 марта 2011

Kludge:

У меня была похожая проблема с AppleScript, который я сделал для установки сигналов тревоги iCal;Я хотел иметь возможность идентифицировать и удалять события, которые мой сценарий произвел на следующем проходе.

Я не смог найти никаких подобных тегам свойств для событий iCal, поэтому я использовал свойство location, котороеэто строка;Я установил его на "" и искал это.(Предостережение: в сообщении о тревоге указывается местоположение в конце, окруженное паренами, так что это немного усложняет ситуацию.)

Если вам требуется свойство location для других целей в вашем приложении, вы все равно сможетедобавить некоторую последовательность идентифицирующих символов.Или, может быть, вы можете использовать другое свойство, которое вам не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...