我创建带有notID的本地推送通知,然后在删除过程中使用以下代码块将其删除;
NSString *myIDToCancel = [NSString stringWithFormat: @"m%@", object.reminderID];
UILocalNotification *notificationToCancel=nil;
for(UILocalNotification *aNotif in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
if([[aNotif.userInfo objectForKey:@"notID"] isEqualToString:myIDToCancel]) {
notificationToCancel=aNotif;
[[UIApplication sharedApplication] cancelLocalNotification:notificationToCancel];
// break;
}
}
我评论了休息时间;因为可以有1个以上具有相同ID的通知-例如每天4次通知之间6小时之间具有相同的notID-因此我可以在退出for循环之前检查所有通知。
它曾经可以完美地工作,但现在不是。调试时,我可以看到它会检查并逐个取消通知,但是在该本地通知启动后,甚至被取消。
编辑:我还通过以下方式检查了ScheduledLocalNotifications:
NSArray *localNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications];
代码块,删除后显示0个元素,但仍会触发。