2

6 つの UILocalNotifications があります。すべての通知には独自の「userInfo」があります

  1. @"1"
  2. @"2"
  3. @"3"
  4. @"4"
  5. @"5"
  6. @"6"

次に、通知番号4を削除し、5つの通知を取得します:

  1. @"1"
  2. @"2"
  3. @"3"
  4. @"5"
  5. @"6"

通知で「userInfo」を変更して取得する方法:

  1. @"1"
  2. @"2"
  3. @"3"
  4. @"4"
  5. @"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 のデータを置き換えたいと考えています。

4

2 に答える 2

5

答えを得た=)

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];
    }
}
于 2013-04-10T12:48:28.070 に答える