как определить конкретное уведомление в IOS SDK - PullRequest
12 голосов
/ 07 октября 2011

на самом деле разрабатываю проект сигнализации, Теперь у меня есть сомнения по поводу локального уведомления. Как я могу определить конкретное уведомление. мы даже не можем установить тег для локального уведомления, тогда как я могу их различить.

пример:

извещение: 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 Ответ

8 голосов
/ 21 октября 2011

Я предполагаю, что используйте 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];


        }

Разместите вышеуказанный код в соответствии с вашим удобством

...