如何在ios sdk中识别特定通知

时间:2011-10-07 13:32:55

标签: ios uilocalnotification

实际上正在开发一个警报项目, 现在我对本地通知有疑问。我如何识别特定通知。 我们甚至无法将标签设置为本地通知,那么我如何区分它们。

示例:

通知:1

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    localNotification.fireDate = selectedDate; 
    localNotification.alertBody = @"you got work";
    localNotification.alertAction = @"Snooze";
    localNotification.repeatInterval = NSDayCalendarUnit;
    localNotification.soundName = UILocalNotificationDefaultSoundName;

    NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:@"setNotificationForEveryDay", @"key", nil];
    localNotification.userInfo = infoDict;

    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    [localNotification release];

通知:2,

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    localNotification.fireDate = another selectedDate; 
    localNotification.alertBody = @"i got work";
    localNotification.alertAction = @"Snooze";
    localNotification.repeatInterval = NSDayCalendarUnit;
    localNotification.soundName = UILocalNotificationDefaultSoundName;
    NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:@"setNotificationForEveryDay", @"key", nil];
    localNotification.userInfo = infoDict;

    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    [localNotification release];

现在我情况要删除第二个通知我该怎么办... 请帮我.. 提前谢谢..

1 个答案:

答案 0 :(得分:8)

我的猜测是使用userInfo来区分本地通知,这是一个更好的想法,但是你需要设置本地通知的userInfo。

就像你可以做这样的事情

 if ([Your_notification_Object.userInfo valueForKey:@"Key 1"]==@"Object 1") {

            NSLog(@"This is notification 1");
        }

现在是你的第二个要求,即对于删除部分,你想删除通知,当它被识别为n1或n2时,那么在这种情况下你可以修改上面的代码并添加这个

if ([Your_notification_Object.userInfo valueForKey:@"Key 1"]==@"Object 1") {

            NSLog(@"This is notification 1");
[[UIApplication sharedApplication] cancelLocalNotification:Your_notification_Object];


        }

根据您的方便放置上述代码