UILocalNotifiation
我遇到了一个奇怪的问题。我每晚11点59分安排当地通知。现在,我已从我的项目中删除了该代码,但我仍然每晚11点59分收到本地通知。我试图从设备中删除构建,更改设备并清理派生数据。
答案 0 :(得分:9)
这实际上是标准的iOS行为,因为您在iOS(实际操作系统)上安排通知。这意味着,一旦您安排了UILocalNotification
,它就会停留在操作系统中,直到它触发或手动取消。
因此,对于您的情况,听起来您最初安排了一些通知,这些通知现在都在等待触发的操作系统中。当您更改代码或删除应用程序时,它们不会消失,只有删除它们或被解雇时它们才会消失。
为了确保您没有收到过去安排的任何通知,您可以使用以下方式删除它们:
[[UIApplication sharedApplication] cancelAllLocalNotifications];
您还可以获取应用当前安排的所有通知,并单独取消:
NSArray *activeNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications];
for (UILocalNotification *notification in activeNotifications) {
[[UIApplication sharedApplication] cancelNotification:notification];
}