【发布时间】:2016-11-18 15:09:29
【问题描述】:
在我的应用程序中,我正在向设备日历添加一个事件。我正在这样做
if ([db.saveCalenderSettings isEqualToNumber:[NSNumber numberWithBool:YES]]){
NSPredicate *predicateForEventOnDate = [store predicateForEventsWithStartDate:strtdate endDate:[strtdate dateByAddingTimeInterval:60*60] calendars:nil];
NSArray *eventsOnDate = [store eventsMatchingPredicate:predicateForEventOnDate];
__block BOOL eventExists = NO;
[eventsOnDate enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
EKEvent *eventToCheck = (EKEvent*)obj;
if([note isEqualToString:eventToCheck.notes]) {
eventExists = YES;
*stop = YES;
}
}];
NSLog(@"%@",eventsOnDate);
if(! eventExists) {
NSLog(@"Event not exists so adding");
EKEvent *event = [EKEvent eventWithEventStore:store];
event.title = subject; //give event title you want
event.notes = note ;
event.startDate = strtdate;
event.endDate = [event.startDate dateByAddingTimeInterval:60*60];
event.calendar = [store defaultCalendarForNewEvents];
// EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:60*15*-1];
// event.alarms = [NSArray arrayWithObject:alarm];
NSError *err = nil;
[store saveEvent:event span:EKSpanThisEvent commit:YES error:&err];
if (!err) {
[db setSavedtocalender:@"yes"];
}
else {
// NSLog(@" Event not created");
[db setSavedtocalender:@"no"];
}
}
else {
NSLog(@"Event exists");
[db setSavedtocalender:@"yes"];
}
}
但问题是在默认日历中多次添加相同的事件。谁能告诉我哪里出错了?
【问题讨论】:
-
@Nirav 出于某种原因我无法使用事件标识符。所以我就是这样做的
-
你错误地标记了我而不是 SagarShirbhate :)
标签: ios iphone ipad icalendar ekeventstore