在我的应用程序中,我正在使用 eventkit 框架检索所有日历事件。现在我已将其解析为 json 以将其上传到服务器。最好的方法是什么,如果有任何可以解析日历事件的解析器库或框架,请给我一个想法。下面是我用来检索事件的代码
- (NSMutableArray *)fetchallevents {
NSDate *start = [NSDate distantPast];
NSLog(@"start date is : %@",start);
NSDate *finish = [NSDate distantFuture];
NSLog(@"start date is : %@",finish);
// use Dictionary for remove duplicates produced by events covered more one year segment
NSMutableDictionary *eventsDict = [NSMutableDictionary dictionaryWithCapacity:1024];
NSDate* currentStart = [NSDate dateWithTimeInterval:0 sinceDate:start];
int seconds_in_year = 60*60*24*365;
// enumerate events by one year segment because iOS do not support predicate longer than 4 year !
while ([currentStart compare:finish] == NSOrderedAscending) {
NSDate* currentFinish = [NSDate dateWithTimeInterval:seconds_in_year sinceDate:currentStart];
if ([currentFinish compare:finish] == NSOrderedDescending) {
currentFinish = [NSDate dateWithTimeInterval:0 sinceDate:finish];
}
NSPredicate *predicate = [eventStore predicateForEventsWithStartDate:currentStart endDate:currentFinish calendars:nil];
[eventStore enumerateEventsMatchingPredicate:predicate
usingBlock:^(EKEvent *event, BOOL *stop) {
if (event) {
[eventsDict setObject:event forKey:event.eventIdentifier]; } }];
currentStart = [NSDate dateWithTimeInterval:(seconds_in_year + 1) sinceDate:currentStart];
}
NSMutableArray *events =[[eventsDict allValues]mutableCopy];
//NSLog(@"the evenets for the day is : %@", events);
return events;
}