我可以不显示 UILocalNotification 吗?

Can I not show an UILocalNotification?

我有一个 objective c 应用程序。我在一个时间间隔内显示 UILocalNotifications。但随后添加了这个,我不想显示确定的通知。

例如,我在通知中添加了一个键和值,如果在 didReceiveLocalNotification 函数中收到的通知有 key=2 我想显示,但如果通知有 key=1 我不想显示。

这可能吗?

我正在尝试使用这段代码,但总是显示所有通知:

UILocalNotification *notification = [[UILocalNotification alloc] init];
        //notification.fireDate = [[NSDate date] dateByAddingTimeInterval:1];
        notification.alertBody = @"Hello!";
        notification.soundName =  @"Alarm-Clock.caf";
        NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:@"key1", @"1", nil];
        notification.userInfo = infoDict;
        notification.repeatInterval = NSCalendarUnitMinute;
        [[UIApplication sharedApplication] scheduleLocalNotification:notification];


- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
if([[notification.userInfo valueForKey:@"1"] isEqual:@"key1"]){
            [[UIApplication sharedApplication] cancelLocalNotification:notification];
        }

您可能想要使用以下内容,但您需要在触发 UILocationNotification 之前执行此操作,而不是之后。

for (UILocalNotification *localNotification in [[UIApplication sharedApplication] scheduledLocalNotifications]) {

    if ([[localNotification.userInfo valueForKey:@"1"] isEqual:@"key1"]) {

        [[UIApplication sharedApplication] cancelLocalNotification:localNotification];

    }

}

希望对您有所帮助。

干杯。