Получить EKEvent с определенным заголовком в EKEventStore

Здравствуйте, я сохранил некоторые EKEvent в определенном календаре в iCloud, я хочу получить некоторые из этих EKEvent с определенным заголовком, это возможно? я вижу, что есть этот метод:

eventsMatchingPredicate

но есть только один предикат:

predicateForEventsWithStartDate:endDate:calendars:

и я хочу найти EKEvent для заголовка, есть идеи?


person Piero    schedule 09.12.2012    source источник


Ответы (1)


Я бы посоветовал вам сохранить идентификатор события, а затем получить его с помощью EKEventStore метода - (EKEvent *)eventWithIdentifier:(NSString *)identifier

РЕДАКТИРОВАТЬ: Ага, теперь я понимаю ваш вопрос. К сожалению, единственный предикат, который вы можете использовать с EKEventStore, это - (NSPredicate *)predicateForEventsWithStartDate:(NSDate *)startDate endDate:(NSDate *)endDate calendars:(NSArray *)calendars.

Таким образом, вы должны указать дату начала и дату окончания, чтобы получить события между этими датами. После того, как вы получили события, вы можете отфильтровать события с помощью NSArray - filteredArrayUsingPredicate:, чтобы вы могли дать ему предикат с заголовком события.

person Peter Warbo    schedule 09.12.2012
comment
их слишком много, мне просто искать по названию, потому что у меня такое же название... - person Piero; 10.12.2012
comment
хорошо, спасибо, как я могу установить заголовок в предикате? Можете ли вы привести пример? - person Piero; 10.12.2012
comment
[NSPredicate predicateWithFormat:@title == %@, titleYourLookingFor]; подробнее о предикатах см. здесь developer.apple.com /library/mac/documentation/Cocoa/Conceptual/ - person Peter Warbo; 10.12.2012
comment
@Piero Почти 5 лет вперед, и это все еще так. Даже NSCompoundPredicate с предикатом, созданным predicateForEventsWithStartDate:endDate:calendars:, и каким-то пользовательским в сочетании с andPredicateWithSubpredicates вызывает ошибку, что предикат недействителен. - person Piotr Byzia; 13.08.2015