我有一个名为MyCalendar的日历。
我已将一些事件存储到该日历中..
我知道如何从日历中删除所有事件......如下所示
NSDate *startDate = [NSDate date];
NSDate* endDate = [NSDate dateWithTimeIntervalSinceNow:[[NSDate distantFuture] timeIntervalSinceReferenceDate]];
NSArray *calendarArray = [NSArray arrayWithObject:self.defaultCalendar];
NSPredicate *predicate = [self.eventStore predicateForEventsWithStartDate:startDate
endDate:endDate
calendars:calendarArray];
NSArray *events = [self.eventStore eventsMatchingPredicate:predicate];
for (EKEvent *event in events) {
NSError* err = nil;
[self.eventStore removeEvent:event span:EKSpanFutureEvents commit:YES error:&err];
}
但是当用户从设备中删除我的应用时。如何删除与Calendar MyCalendar相关的所有事件。
由于不必要,设备日历中仍然存在已删除应用的某些事件。
如果用户不想使用我的应用程序,最好保留与我的应用程序相关的事件。
任何想法&建议表示赞赏。可能吗?
先谢谢..
答案 0 :(得分:6)
当用户要从iPhone删除应用程序时,我们没有任何控制来执行某些操作,这非常简单。也许您可以在应用程序中提供Delete All Events
选项,以通知用户正确的按摩。我认为用户在删除之前至少有一次使用过您的应用程序。所以我认为如果他/她对这个应用程序的运作方式有正确的认识,那么他们可以从应用程序中删除应用程序事件然后删除应用程序。
实际上我们没有任何选择,为什么我会建议你这个。使用此选项的用户数量对他们有用。
实际上天气苹果处理这样的功能与否取决于它们。因为某些时间事件不仅与应用程序有关,例如从Facebook添加birthday
事件不仅与Facebook有关。即使Facebook应用程序被删除,用户也需要该提醒。所以我认为苹果需要从处理这种情况中找出某种解决方案。
希望这对你有所帮助。
答案 1 :(得分:1)
我也不认为这是可能的。而且我还认为这些年来可能有无数雷达要求它。
我认为问题在于您存储事件的方式。如果它们只与您的应用相关,那么您应该将它们存储在应用中,并且只能在应用中访问它们,并在删除应用时删除。
如果您将它们存储到设备日历中,那么我会将您的应用视为日历活动的管理员。不是您的应用事件,而是USER事件。他可以使用您的应用来管理它们或其他应用。如果它们在用户日历中,它们也可能保存在云端,并且他也可以从mac管理它们。
如果他们允许你想要的功能,什么会阻止你破坏性并删除用户日历中的所有事件,作为复仇,因为它删除你的应用程序?
答案 2 :(得分:1)
iOS应用程序在即将卸载时不会收到任何回调,因此无法执行您想要的操作。