Я добавляю массив событий в календарь IOS. Поскольку это должно происходить при нажатии кнопки. Делая это, все события добавляются снова и снова. Итак, чтобы преодолеть это, я использовал NSPredicate для получения всех событий и выполнения проверки, например ниже
NSDate *edate=[formatter dateFromString:startDateString];
NSDate *fdate=[formatter dateFromString:endDateString];
NSLog(@"Start Date is %@",edate);
NSLog(@"End Date is %@",fdate);
event1.startDate =edate;
event1.endDate=fdate;
NSArray *caleandarsArray = [[NSArray alloc] init];
caleandarsArray = [eventStore calendars] ;
NSPredicate *predicateForEvents = [eventStore predicateForEventsWithStartDate:edate endDate:fdate calendars:caleandarsArray]; // nil will search through all calendars
NSArray *eventsOnDate = [eventStore eventsMatchingPredicate:predicateForEvents];
NSLog(@"Events on holday date is %@",eventsOnDate);
BOOL eventExists = NO;
for (EKEvent *eventToCheck in eventsOnDate)
{
NSLog(@" eventToCheck title is %@",eventToCheck.title);
NSLog(@" myTripsArray title is %@",[myTripsArray objectAtIndex:i]);
if ([eventToCheck.title isEqualToString:[myTripsArray objectAtIndex:i]])
{
eventExists = YES;
NSLog(@"Event already existed");
}
}
if (eventExists == NO)
{
[event1 setTimeZone:[NSTimeZone systemTimeZone]];
[event1 setCalendar:[eventStore defaultCalendarForNewEvents]];
NSError *err;
if(err)
{
NSLog(@"Error occured");
}
else
{
NSLog(@"Error not occured");
}
[eventStore saveEvent:event1 span:EKSpanThisEvent error:&err];
}
}
По приведенному выше коду я получаю только события дня рождения, а не какие-либо другие существующие события. Как получить все события из календаря.
Пожалуйста, помогите мне, где я ошибся.