删除代码后触发本地通知

我正面临着UILocalNotifiation一个奇怪问题。 我每晚11点59分安排一个本地通知。 现在,我已从我的项目中删除了该代码,但我仍然每晚11点59分收到本地通知。 我试图从设备中删除构建,更改设备并清理派生数据。

这实际上是标准的iOS行为,因为您在iOS(实际操作系统)上安排通知。 这意味着,一旦您安排了UILocalNotification ,它将位于操作系统中,直到它触发或手动取消。

因此,对于您的情况,听起来您最初安排了一些通知,这些通知现在都在等待触发的操作系统中。 当您更改代码或删除应用程序时,它们不会消失,只有删除它们或被解雇时它们才会消失。

为了确保您没有收到过去安排的任何通知,您可以使用以下方法删除它们:

 [[UIApplication sharedApplication] cancelAllLocalNotifications]; 

您还可以获取应用当前安排的所有通知,并单独取消:

 NSArray *activeNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications]; for (UILocalNotification *notification in activeNotifications) { [[UIApplication sharedApplication] cancelNotification:notification]; }