2017-03-27 19 views
1

私は目的のCアプリケーションを持っています。私は時間間隔でUILocalNotificationsを表示します。しかし、これを追加しました。私は決定された通知を表示しません。UILocalNotificationを表示できませんか?

たとえば、キーと値を通知に追加し、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]; 
     } 

答えて

2

次を使用する場合がありますが、UILocationNotificationが発射される前に、それを行う必要はありません後に。

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

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

     [[UIApplication sharedApplication] cancelLocalNotification:localNotification]; 

    } 

} 

これが役立ちます。

乾杯。

+0

UILocationNotificationが発生する前に何を意味するのですか?私はdidReceiveLocalNotificationにこれを呼び出すことができますか?私は最初にUILocalNotificationを追加してから、これが表示されたら1分後に私は表示したくありません。あなたの答えは明確でありがとうと思います。 – user3745888

+0

はい、次の通知が行われなかったので 'didReceiveLocalNotification'を呼び出すことができます。キャンセルされます。 – iphonic

関連する問題