尝试以程序方式将事件添加到iPhone日历中。 我没有得到任何错误,但也没有任何东西被添加到日历中。 savedEventId(下面)返回(null) 这是代码:
方法
添加活动:
if(accessGranted){
EKEvent *event = [EKEvent eventWithEventStore:store];
event.startDate =[NSDate date];
event.endDate = [event.startDate dateByAddingTimeInterval:60*60];
[event setCalendar:[store defaultCalendarForNewEvents]];
NSError *err = nil;
[store saveEvent:event span:EKSpanThisEvent commit:YES error:&err];
NSString *savedEventId = event.eventIdentifier;
}
访问日历
在viewDidLoad中:
store = [[EKEventStore alloc] init];
accessGranted=FALSE;
[self.store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
accessGranted=TRUE;
}];
<。>文件中的
#import <EventKit/EventKit.h>
@interface
EKEventStore *store;
BOOL accessGranted;
@property(nonatomic, retain) EKEventStore *store;
<。>文件中的
@synthesize store;
答案 0 :(得分:1)
请尝试使用此代码:
EKEventStore *store = [[EKEventStore alloc] init];
[store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
if (!granted) { return; }
EKEvent *event = [EKEvent eventWithEventStore:store];
event.title = @"Event Title";
event.startDate = [NSDate date]; //today
event.endDate = [event.startDate dateByAddingTimeInterval:60*60]; //set 1 hour meeting
[event setCalendar:[store defaultCalendarForNewEvents]];
NSError *err = nil;
[store saveEvent:event span:EKSpanThisEvent commit:YES error:&err];
NSString *savedEventId = event.eventIdentifier; //this is so you can access this event later
}];
请记住:
通过“requestAccessToEntityType:completion:”请求访问用户的日历
提交您的活动