现在我在日历应用程序中处理EKEvent管理。我成功地向eventStore添加了一个事件。我需要从事件存储中获取事件标识符。 我使用以下代码访问eventIdentifier.But我总是在我的应用程序中为evetnIdentifier获取null值。
EKEvent *event = [self eventAtIndexPath:indexPath];
NSString *eventIdentifier]; = [[NSString alloc] initWithFormat:@"%@",event.eventIdentifier];
答案 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 ];
}
}
希望它会对你有所帮助。快乐的编码。感谢。