解析日历事件

时间:2012-07-11 10:57:17

标签: iphone ios eventkit

在我的应用程序中,我正在使用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;

}

0 个答案:

没有答案