我遇到过这个问题;如果事件的开始日期和结束日期完全相同,则检查事件的后续方法是日历不起作用,并且用户可以添加具有完全相同信息的多个事件。
如果开始日期和结束日期不同,则方法运行良好。 泡沫日期:
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
寻找活动:
NSPredicate *predicateForEventsOnHolidayDate = [self.eventStore predicateForEventsWithStartDate:startDate endDate:endDate calendars:self.eventStore.calendars]; // nil will search through all calendars
NSArray *eventsOnHolidayDate = [self.eventStore eventsMatchingPredicate:predicateForEventsOnHolidayDate];
BOOL eventExists = NO;
for (EKEvent *eventToCheck in eventsOnHolidayDate) {
if ([eventToCheck.title isEqualToString:[dataDict objectForKey:@"event_name"]]) {
eventExists = YES;
NSLog(@"Event Already Exists");
}
}
//save eventts
if (eventExists == NO) {
[self.eventStore saveEvent:myEvent span:EKSpanThisEvent commit:YES error:&error];
}
我知道会有一些用户太懒,他们不会正确填写数据表格,所以我会得到相同的开始日期和结束日期。
如何防止这种情况发生?