1

古い uilocalnotification を作成しました。更新したいので、Google で検索しましたが、ローカル通知を更新する方法がありません。そこで、キャンセルして新しいローカル通知を作成することにしました。

- (void) cancelLocalNotificationByUserInfo: (NSDictionary *)dictInfo
{
    UIApplication *application = [UIApplication sharedApplication];

    NSArray *notifArr = [application scheduledLocalNotifications];

    for (int i=0; i<notifArr.count; i++) 
    {
        UILocalNotification* theNotif = (UILocalNotification *)[notifArr objectAtIndex:i];
        if ([theNotif.userInfo isEqual:dictInfo])
        {
            [application cancelLocalNotification:theNotif];
        }
    }
}

- (void) addLocalNotification: (NSDate *) fireDate soundName: (NSString *) soundName 
                    alertBody:  (NSString *) alertBody infoDict: (NSDictionary *)infoDict
{
    UILocalNotification *localNotif = [[UILocalNotification alloc] init];
    if (localNotif == nil)
        return;

    localNotif.fireDate = fireDate;

    localNotif.timeZone = [NSTimeZone defaultTimeZone];

    // Notification details
    localNotif.alertBody = alertBody;

    // Set the action button
    localNotif.alertAction = @"Show me";
    localNotif.hasAction = YES;

    localNotif.applicationIconBadgeNumber = 1;
    localNotif.soundName = soundName;

    localNotif.userInfo = infoDict;

    // Schedule the notification
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
    [localNotif release];

}

しかし、addLocalNotification メソッドを実行するたびに、古いローカル通知がすぐに起動されます。私を助けてください!

4

0 に答える 0