将事件添加到iPhone应用程序中的iCal中
我的申请中有一项要求,即当我预约某一天的医生时,应在iCal中添加该天。它应该在特定的一天生成一个警报视图 因此,我不知道如何在iCal中添加事件。请给我一些答案 场景是,我确实有一个字符串(NSString)用于该特定约会的“日期”和“备注”。然后,如何将所有这些信息插入iCal 代码:将事件添加到iPhone应用程序中的iCal中,iphone,objective-c,Iphone,Objective C,我的申请中有一项要求,即当我预约某一天的医生时,应在iCal中添加该天。它应该在特定的一天生成一个警报视图 因此,我不知道如何在iCal中添加事件。请给我一些答案 场景是,我确实有一个字符串(NSString)用于该特定约会的“日期”和“备注”。然后,如何将所有这些信息插入iCal 代码: 我已经使用了这些函数和委托方法。请告诉我,当用户收到提醒时,如何打开有关该事件的信息?您需要。您可以要求提供其日历,然后使用这些日历创建一个谓词,该谓词允许您。或者你可以创建一个新的对象,并根据苹果的文档,这
我已经使用了这些函数和委托方法。请告诉我,当用户收到提醒时,如何打开有关该事件的信息?您需要。您可以要求提供其日历,然后使用这些日历创建一个谓词,该谓词允许您。或者你可以创建一个新的对象,并根据苹果的文档,这在iOS 6.0中有了一些改变 1) 您应该通过“requestAccessToEntityType:completion:”请求访问用户的日历,并在块内执行事件处理 2) 您需要立即提交事件,或者将“提交”参数传递给save/remove调用 其他一切都是一样的 添加EventKit框架并#导入到代码中 要添加事件,请执行以下操作:
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
}];
删除事件:
EKEventStore* store = [[EKEventStore alloc] init];
[store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
if (!granted) { return; }
EKEvent* eventToRemove = [store eventWithIdentifier:savedEventId];
if (eventToRemove) {
NSError* error = nil;
[store removeEvent:eventToRemove span:EKSpanThisEvent commit:YES error:&error];
}
}];
你好,先生,我做了和你说的一样的事。。。但是,当用户收到该特定事件的警报时,会有两个选项,“关闭”和“查看事件”。在这些选项上面,我们可以看到该提醒的标题、位置和开始时间。但是,关于这一点的注释部分并不存在。如何访问它?此外,该警报视图的“查看事件”选项未显示任何内容。。。。。请帮我摆脱这个。。。
EKEventStore* store = [[EKEventStore alloc] init];
[store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
if (!granted) { return; }
EKEvent* eventToRemove = [store eventWithIdentifier:savedEventId];
if (eventToRemove) {
NSError* error = nil;
[store removeEvent:eventToRemove span:EKSpanThisEvent commit:YES error:&error];
}
}];