Insignia de aplicación clara con notificaciones locales

Estoy tratando de borrar la insignia "no leída" de mi aplicación con unaUILocalNotification. Lógicamente, pensarías que esto se haría estableciendoapplicationIconBadgeNumber de unUILocalNotification instancia a 0. Pero no funciona, y los documentos para applicationIconBadgeNumber dicen "El valor predeterminado es 0, lo que significa" sin cambios ""

Entonces, ¿realmente no hay forma de borrar una insignia con notificaciones locales una vez que se ha configurado?

Update: algún código simple:

-(void)applicationDidFinishLaunching
{
    // Set the appication icon badge to 1 in 10 minutes, using a local notification so it works in the background:
    // This works fine.

    UILocalNotification *episodeNotification = [[UILocalNotification alloc] init];
    episodeNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:(60 * 10)];
    episodeNotification.timeZone = [NSTimeZone defaultTimeZone];
    episodeNotification.applicationIconBadgeNumber = 1;

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


    // Clear the application icon badge in 20 minutes, again using a local notifcation so it works in the background:
    // This doesn't work.  According to the docs for local notification it's not supposed to
    // because (applicationIconBadgeNumber = 0) means "Do not change the badge"
    // I'm looking for an alternative if it exists.

    UILocalNotification *clearEpisodeNotification = [[UILocalNotification alloc] init];
    clearEpisodeNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:(60 * 20)];
    clearEpisodeNotification.timeZone = [NSTimeZone defaultTimeZone];
    clearEpisodeNotification.applicationIconBadgeNumber = 0;

    [[UIApplication sharedApplication] scheduleLocalNotification:clearEpisodeNotification];
    [clearEpisodeNotification release];
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta