我有6个 UILocalNotifications。
每个通知都有自己的“userInfo”

  • @“1”
  • @“2”
  • @“3”
  • @“4”
  • @“5”
  • @“6”

  • 然后我删除4号通知,并有5条通知:
  • @“1”
  • @“2”
  • @“3”
  • @“5”
  • @“6”

  • 我如何在通知中更改“userInfo” 以获取:
  • @“1”
  • @“2”
  • @“3”
  • @“4”
  • @“5”

  • 保存代码-
    // Specify custom data for the notification
    
    NSDictionary *infoDict = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"%i", i] forKey:@"notif"];
    localNotif.userInfo = infoDict;
     i = i + 1;
    

    删除代码-
    if (flagTable == 1)
    {
        int numberPhoto = [[[UIApplication sharedApplication] scheduledLocalNotifications] count];
        int numPhFlag = numberPhoto;
        int i = 0;
        NSLog(@"Col notif = %d", numberPhoto);
        UILocalNotification *localNotif = [[UILocalNotification alloc] init];
        while (numberPhoto == numPhFlag) {
            localNotif = [[[UIApplication sharedApplication] scheduledLocalNotifications] objectAtIndex:i];
            localNotif.timeZone = [NSTimeZone localTimeZone];
            NSDateFormatter *format = [[NSDateFormatter alloc] init];
            [format setDateFormat:@"dd-MM-yyyy HH:mm"];
            NSString *itemDateWithFormat = [format stringFromDate:localNotif.fireDate];
            NSLog(@"remText2 %@ = fireDate2 %@", itemDateWithFormat, [appDel.fireDateArray objectAtIndex:row]);
            if ([itemDateWithFormat isEqualToString:[appDel.fireDateArray objectAtIndex:row]]) {
                NSLog(@"remText3 %@ = fireDate3 %@", itemDateWithFormat, [appDel.fireDateArray objectAtIndex:row]);
                [[UIApplication sharedApplication] cancelLocalNotification:localNotif];
                numPhFlag = numPhFlag - 1;
            }
            i = i + 1;
        }
        int getNot = [[[UIApplication sharedApplication] scheduledLocalNotifications] count];
        NSLog(@"Col notif2 = %d", getNot);
    }
    

    我想遍历通知并替换其userInfo中的数据。

    最佳答案

    得到答案=)

    int notifCount = [[[UIApplication sharedApplication] scheduledLocalNotifications] count];
    for (int j = 0; j < notifCount; j++) {
        UILocalNotification *notific = [[[UIApplication sharedApplication] scheduledLocalNotifications] objectAtIndex:j];
        NSLog(@"notificBefore = %@ and j = %i", [notific.userInfo objectForKey:@"notif"], j+1);
        if ([notific.userInfo objectForKey:@"notif"] != [NSString stringWithFormat:@"%i", j+1]) {
            [[UIApplication sharedApplication] cancelLocalNotification:notific];
            NSDictionary *infoDict = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"%i", j+1] forKey:@"notif"];
            [notific setUserInfo:infoDict];
            NSLog(@"notificEnd = %@", [notific.userInfo objectForKey:@"notif"]);
            [[UIApplication sharedApplication] scheduleLocalNotification:notific];
        }
    }
    

    关于iphone - 我如何在UILocalNotification中更改UserInfo?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15924698/

    10-12 16:28