EKEventStore的使用

使用EventKit获取日历事件,并往日历里面同步事件

首先要在plist里面添加Privacy - Calendars Usage Description键值对

添加工具类方法【将NSString转NSDate】

  • (NSDate *)dateFromString:(NSString *)dateString
    {
    //设置转换格式
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
    [formatter setDateFormat:@"yyyy-MM"];
    NSDate *date=[formatter dateFromString:dateString];
    return date;
    }

获取日历事件

EKEventStore *store = [[EKEventStorealloc] init];
[store requestAccessToEntityType:EKEntityTypeEventcompletion:^(BOOL granted, NSError error) {
if(granted){
NSDate
startDate = [ViewControllerdateFromString: @"2017-01"];//事件段,开始时间

        NSDate* endDate = [ViewControllerdateFromString: @"2018-01"];//结束时间,取中间
        
        
        NSPredicate *fetchCalendarEvents = [store predicateForEventsWithStartDate:startDate endDate:endDate calendars:nil];
        
        NSArray *eventList = [store eventsMatchingPredicate:fetchCalendarEvents];
        NSArray *events = [eventList filteredArrayUsingPredicate:[NSPredicatepredicateWithBlock:^BOOL(EKEvent * _Nullable event, NSDictionary * _Nullable bindings) {
            return event.calendar.subscribed;
        }]];

        
        NSLog(@"events:<<<<<<<<<<<<%@>>>>>>>>>>>",events);
        
        
        NSMutableArray * marr_events_title=[[NSMutableArrayalloc]init];
        //节日
        for (EKEvent *event in events) {
            if (event.title) {
                Event_Model * model=[[Event_Modelalloc]init];
                model.title=event.title;
                model.lastModified=[ViewControllerstringFromDate:event.startDate];
                [marr_events_title addObject:model];
            }
        }
        
        NSLog(@"marr_events_title:<<<<<<<<<<<<%@>>>>>>>>>>>",marr_events_title);

        
        
        
    }
}];

将数组打印出来

我们根据需求来获取相应的信息

代码链接:https://git.oschina.net/VanCamp/EKEventStore.git

你可能感兴趣的:(EKEventStore的使用)