iOS 日历提醒事件

-(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];

}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值