-1
我创建了一个Local Notification
被点击某个按钮(SetButton
)时触发60秒。我的问题现在的问题是,如果SetButton
再次按下,它不会覆盖先按下,它会显示2个通知等。如何确保该按钮的第二次按覆盖第一次记者并没有通知的积累?IOS重写本地通知
- (IBAction)SetButtonPressed:(id)sender {
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:60];
localNotification.alertBody = @"HEY GET UP";
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;
}
我AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UILocalNotification *localNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if ([UIApplication instanceMethodForSelector: @selector(registerUserNotificationSettings:)]) {
[application registerUserNotificationSettings: [UIUserNotificationSettings settingsForTypes: UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil]];
}
if (localNotification) {
application.applicationIconBadgeNumber = 0;
}
}
你不得不取消先前的本地通知取消所有的通知,如果你不想它开火。或者,如果您不想保留对先前设置的通知的引用,则只需取消所有本地通知。而且要知道,[UILocalNotification]已被弃用... –
@RokJarc您好,感谢的答案,但我怎么取消以前的以前的通知。我仍然在学习目标C –
在这种情况下,最简单的方法将被调用'[[UIApplication的sharedAplication] cancelAllLocalNotifications]'只是你之前注册一个新的。试试它作为你的'SetButtonPressed:'方法的第一行。这样,您不必持有对先前计划的通知的参考。 –