-(void)addEventNotify:(NSDate *)date title:(NSString *)title
{
//申请事件类型权限
[eventStore requestAccessToEntityType:EKEntityTypeEventcompletion:^(BOOL granted,NSError * _Nullable error) {
if (granted) {//授权是否成功
EKEvent *myEvent = [EKEventeventWithEventStore:eventStore];//创建一个日历事件
myEvent.title = title; //标题
myEvent.startDate = date;//开始date required
myEvent.endDate = [NSDatedateWithTimeInterval:60sinceDate:date]; //结束date required
[myEvent addAlarm:[EKAlarmalarmWithRelativeOffset:-5.0f]];//添加一个闹钟 optional
[myEvent setCalendar:[eventStoredefaultCalendarForNewEvents]]; //添加calendar required
myEvent.allDay =NO;
for (EKRecurrenceRule *rulein myEvent.recurrenceRules) {
[myEvent removeRecurrenceRule:rule];
}
EKRecurrenceRule *rule = [[EKRecurrenceRulealloc]
initRecurrenceWithFrequency:EKRecurrenceFrequencyDaily
interval:1
end:nil];
[myEvent addRecurrenceRule:rule];
NSError *err;
if( [eventStoresaveEvent:myEvent span:EKSpanThisEventerror:&err]){
identify = myEvent.eventIdentifier;
[[NSUserDefaultsstandardUserDefaults] setObject:myEvent.eventIdentifierforKey:@"eventIdentify"];
[[NSUserDefaultsstandardUserDefaults] synchronize];
NSLog(@"保存成功");
}
else
{
NSLog(@"error:%@",err);
}; //保存
}
}];
}
// 移除提醒事件
-(void)removeEkeventWithEventIdentify:(NSString *)eventIdentify{
EKEvent *event = [eventStoreeventWithIdentifier:eventIdentify];
if( [eventStoreremoveEvent:event span:EKSpanFutureEventserror:nil]){
NSLog(@"移除成功!");
}
}
// 获取日历事件
-(void)getDateEvent{
NSDate *startDate = [NSDatedateWithTimeIntervalSinceNow:-3600 *24 * 90];//事件段,开始时间
NSDate *endDate = [NSDatedateWithTimeIntervalSinceNow:3600 *24 * 90];//事件段,结束时间
NSPredicate *predicate = [eventStorepredicateForEventsWithStartDate:startDateendDate:endDate calendars:nil];
NSArray *events = [eventStoreeventsMatchingPredicate:predicate]; // 数组里面就是时间短中的ekevent事件数组
for (EKEvent *eventin events) {
NSLog(@"\nidentify:%@",event.eventIdentifier);
[self removeEkeventWithEventIdentify:event.eventIdentifier];
}
// [self insertEvent];
}