2017-03-27 7 views
1

Ich habe eine objektive c-Anwendung. Ich zeige UILocalNotifications in einem Zeitintervall. Aber dann fügte das hinzu, ich möchte keine festgestellten Benachrichtigungen anzeigen.Kann ich keine UILocalNotification anzeigen?

Zum Beispiel füge ich einen Schlüssel und Wert auf Meldungen, und wenn die Meldungen in didReceiveLocalNotification Funktion empfangen habe den Schlüssel = 2 I zeigen will, aber wenn die Meldungen haben den Schlüssel = 1 Ich möchte dies nicht zeigen.

Ist das möglich?

Ich versuche, dies mit diesem Code, aber immer sind alle Benachrichtigungen zeigte:

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]; 
     } 

Antwort

2

Sie könnten die folgende verwenden möchten, aber Sie müssen es tun, bevor die UILocationNotification abgefeuert wird, nicht nach.

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

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

     [[UIApplication sharedApplication] cancelLocalNotification:localNotification]; 

    } 

} 

Ich hoffe, dies hilft.

Prost.

+0

Was meinst du mit bevor die UILocationNotification ausgelöst wird? Kann ich das in didReceiveLocalNotification nennen? Weil ich zuerst die UILocalNotification hinzufüge und dann eine Minute, wenn das angezeigt wird, will ich nicht zeigen. Hoffe klar und danke für deine Antwort. – user3745888

+0

Ja, Sie können 'didReceiveLocalNotification' aufrufen, da die nächste Benachrichtigung nicht ausgelöst wurde, sie wird abgebrochen. – iphonic