收到通知后,我正尝试从iCal删除事件。仅当iCal在后台时,事件才会被删除。如果在关闭iCal之后发送了相同的通知,则不会删除该事件。我正在尝试使用MyCalendar.m中的此方法访问iCal
+ (void)requestAccess:(void (^)(BOOL granted, NSError *error))callback {
if (eventStore == nil) {
eventStore = [[EKEventStore alloc] init];
}
[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:callback];
}
并试图使用Appdelegate.m中的以下方法删除事件
[MyCalendar requestAccess:^(BOOL granted, NSError *error) {
if (granted) {
if ([[self.launchOptions objectForKey:@"type"] isEqualToString:@"remainder"] || [[self.launchOptions objectForKey:@"type"] isEqualToString:@"cancelAppointment"]) {
if ([[self.launchOptions objectForKey:@"type"]
isEqualToString:@"cancelAppointment"]) {
if (![MyCalendar removeEventWithEventIdentifier:
[self.launchOptions objectForKey:@"eventId"]]) {
}
}
}
}
}];
正在使用MyCalendar.m中的以下方法从iCal删除事件
+ (BOOL)removeEventWithEventIdentifier:(NSString *)identifier {
EKEvent *event2 = [eventStore eventWithIdentifier:identifier];
BOOL result = NO;
if (event2 != nil) {
NSError *error = nil;
result = [eventStore removeEvent:event2 span:EKSpanThisEvent error:&error];
}
return result;
}
提前致谢!
您必须在使用之前初始化事件存储对象。
+ (BOOL)removeEventWithEventIdentifier:(NSString *)identifier {
EKEventStore* eventStore = [[EKEventStore alloc] init];
EKEvent *event2 = [eventStore eventWithIdentifier:identifier];
BOOL result = NO;
if (event2 != nil) {
NSError *error = nil;
result = [eventStore removeEvent:event2 span:EKSpanThisEvent error:&error];
}
return result;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句