如何在 iOS 中从设备中删除应用程序时删除我的应用程序日历的所有事件

How to delete all the Events of My App Calendar when app is deleted from device in iOS

我有一个名为 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 相关的所有事件。

由于不必要,已删除应用程序的一些事件仍然存在于设备日历中。

如果用户不想使用我的应用程序,则保留与我的应用程序相关的事件是最糟糕的..

如有任何想法和建议,我们将不胜感激..这可能吗?

提前致谢..

我也不认为这是可能的。而且我还认为这些年来可能有无数雷达要求它。

我认为问题在于您存储事件的方式。如果只是和你的应用有关,那么你应该将它们存储在应用中,并且它们只能在应用中访问,并且在删除应用时删除。

如果您将它们存储到设备日历,那么我将您的应用视为日历事件的管理器。不是您的应用程序事件,而是用户事件。他可以使用您的应用程序或其他应用程序来管理它们。如果它们在用户日历中,它们可能也保存在云端,他也可以从 mac 管理它们。

如果他们允许您想要的功能,什么会阻止您破坏并删除用户日历中的所有事件,作为报复,因为它删除了您的应用程序?

很简单,当用户要从 iPhone 中删除应用程序时,我们无法控制执行某些操作。也许您可以在应用程序内提供 Delete All Events 选项以通知用户进行适当的按摩。我认为用户在删除之前至少使用过一次您的应用程序。所以我认为如果 he/she 对这个应用程序的工作方式有正确的了解,那么他们可以挑衅地从应用程序中删除应用程序事件,然后删除应用程序。

实际上,我们没有任何选择可以说明为什么我会向您推荐这个。有多少用户利用此选项会对他们有所帮助。

实际上,苹果是否处理此类功能取决于他们。因为有些时间事件不仅仅与应用程序相关,例如从 facebook 添加 birthday 事件不仅仅与 facebook 相关。即使删除了 Facebook 应用程序,用户也需要该提醒。所以我认为苹果需要从处理这种情况中找出某些解决方案。

希望对您有所帮助。

iOS 应用程序在即将卸载时没有收到任何回调,因此无法执行您想要的操作。

看到这个问题Detect iOS application about to delete?