【发布时间】:2015-03-09 09:18:41
【问题描述】:
UILocalNotifiation 遇到了一个奇怪的问题。我每天晚上 11:59 安排本地通知。现在,我已经从我的项目中删除了该代码,但我仍然在每晚 11:59 收到本地通知。我试图从设备中删除构建,更改设备并清理派生数据。
【问题讨论】:
-
我也有同样的问题,我不知道为什么会触发本地通知。因为我删除了代码。
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];
}
【讨论】: