IOS系统日历中添加事件

IOS系统日历中添加事件

  • 1.在Info.plist中添加访问日历权限

     <key>NSCalendarsUsageDescription</key>
      <string>App需要您的同意,才能访问日历</string> 
  • 2.在对应的类中添加日历相关类

     #import <EventKit/EventKit.h>
  • 3.添加日历事件
  -(void)myEKEventStore{
    //创建事件市场
    EKEventStore *eventStore = [[EKEventStore alloc] init];
    // the selector is available, so we must be on iOS 6 or newer
    [eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
        dispatch_async(dispatch_get_main_queue(), ^{
            if (error)
            {
                //当发生了错误会
                NSLog(@"发生了错误:%@",error);
            }
            else if (!granted)
            {
                //被用户拒绝,不允许访问日历
            }
            else
            {
                //创建事件
                EKEvent *event  = [EKEvent eventWithEventStore:eventStore];
                //给事件添加标题
                event.title  = @"这里是日历事件的标题";
                //设置地点
                event.location = @"这里可以随便写地点";
                //创建测试时间,这里可以改为任意时间
                NSDate *date = [NSDate date];
                //开始时间(必须传)
                event.startDate = [date dateByAddingTimeInterval:60 * 2];
                //结束时间(必须传)
                event.endDate = [date dateByAddingTimeInterval:60 * 5 * 24];
                //全天的事件
                event.allDay = YES;
                //添加提醒
                //第一次提醒 设置事件开始之前1分钟提醒
                [event addAlarm:[EKAlarm alarmWithRelativeOffset:60.0f *60*14]];
                //第二次提醒 设置事件开始之前2分钟提醒
//                [event addAlarm:[EKAlarm alarmWithRelativeOffset:60.0f * -2.0f]];
                //第N次提醒 设置事件提醒
//                [event addAlarm:[EKAlarm alarmWithRelativeOffset:秒]];
                //事件类容备注
                NSString * str = @"这里写备注就行了";
                event.notes = [NSString stringWithFormat:@"%@",str];
                //添加事件到日历中
                [event setCalendar:[eventStore defaultCalendarForNewEvents]];
                NSError *err;
                [eventStore saveEvent:event span:EKSpanThisEvent error:&err];
                //保存事件id,方便查询和删除
                [[NSUserDefaults standardUserDefaults]setObject:event.eventIdentifier forKey:@"eventId"];
            }
        });
    }];

}             

注意:requestAccessToEntityType: completion: 方法必IOS6之后才能用 **

  • 4.查找日历事件

//获取eventId
NSString *eventId=[[NSUserDefaults standardUserDefaults]objectForKey:@"eventId"];
if (eventId) {
  //根据eventId获取事件
  EKEvent *ekEvent=[eventStore  eventWithIdentifier:eventId];
}
  • 5.删除日历事件
//获取事件市场
EKEventStore *eventStore = [[EKEventStore alloc] init];
//获取eventId
NSString *eventId=[[NSUserDefaults standardUserDefaults]objectForKey:@"eventId"];
NSError *err;
if (eventId) {
  //根据eventId获取事件
  EKEvent *ekEvent=[eventStore  eventWithIdentifier:eventId];
  //删除事件
  [eventStore removeEvent:ekEvent span:EKSpanThisEvent error:&err];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值