使用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<EKEvent *> *eventList = [store eventsMatchingPredicate:fetchCalendarEvents];
NSArray<EKEvent *> *events = [eventList filteredArrayUsingPredicate:[NSPredicatepredicateWithBlock:^BOOL(EKEvent * _Nullable event, NSDictionary<NSString *,id> * _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);
}
}];
将数组打印出来
我们根据需求来获取相应的信息







网友评论