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