2012-09-08 68 views
-3

我想問一下如果可能,怎麼做。 你可以給我一些示例代碼或片段如何做到這一點?謝謝。如何從我的iphone日曆中檢索事件?

+0

當在這裏提問時,如果您首先自己做了一些基礎研究,那麼您會得到更好的答覆。在這裏提出問題不應該是您嘗試的第一件事。 – jrturton

回答

1

你想看看Event Kit,它有示例代碼以及有關閱讀日曆事件的文檔。

1

獲取所有事件的代碼。有關更多信息,可以使用上述Event Kit蘋果文檔。

NSDate *start = ... 
NSDate *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]; 

} 

NSArray *events = [eventsDict allValues]; 
相關問題