如何从EKEvent商店获取eventIdentifier?

时间:2013-03-20 10:14:32

标签: iphone ios objective-c ekeventstore

现在我在日历应用程序中处理EKEvent管理。我成功地向eventStore添加了一个事件。我需要从事件存储中获取事件标识符。 我使用以下代码访问eventIdentifier.But我总是在我的应用程序中为evetnIdentifier获取null值。

EKEvent *event = [self eventAtIndexPath:indexPath];    
NSString *eventIdentifier]; = [[NSString alloc] initWithFormat:@"%@",event.eventIdentifier];

1 个答案:

答案 0 :(得分:0)

试试这个::

你的.h

中的

#import <EventKit/EventKit.h>

@property (nonatomic, retain) EKEventStore *eventStore;
@property (nonatomic, retain) EKCalendar *defaultCalendar;
@property (nonatomic, retain) NSMutableArray *eventsList;
你的.m

中的

- (void) fetchevents
{

    eventStore = [[EKEventStore alloc] init];

    eventsList = [[NSMutableArray alloc] init];

    EKEventStore *store = [[EKEventStore alloc] init];

    [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
        // handle access here
    }];

    // Get the appropriate calendar
NSCalendar *calendar = [NSCalendar currentCalendar];

    // Create the start date components
    NSDateComponents *oneDayAgoComponents = [[NSDateComponents alloc] init];
    oneDayAgoComponents.day = -1; // From which date you have to fetch Events from calander

    NSDate *oneDayAgo = [calendar dateByAddingComponents:oneDayAgoComponents
                                              toDate:[NSDate date]
                                             options:0];

    NSLog(@"%@", oneDayAgo);

    // Create the end date components
    NSDateComponents *oneYearFromNowComponents = [[NSDateComponents alloc] init];
    oneYearFromNowComponents.year = 0;
    NSDate *oneYearFromNow = [calendar dateByAddingComponents:oneYearFromNowComponents
                                                   toDate:[NSDate date]
                                                  options:0];
    NSLog(@"%@", oneYearFromNow);

    //Create the predicate from the event store's instance method
    NSPredicate *predicate = [store predicateForEventsWithStartDate:oneDayAgo endDate:oneYearFromNow                                                                                      calendars:nil];


    NSArray *events_Array = [eventStore eventsMatchingPredicate: predicate];

    for (EKEvent *eventToCheck in events_Array)
    {
       [eventsList addObject:eventToCheck.calendarItemIdentifier ];
    }
}

希望它会对你有所帮助。快乐的编码。感谢。