Я пытаюсь отменить локальное уведомление. Я прикрепляю dict с идентификатором, чтобы найти его позже:
+ (void) send:(NSString*)title actionText:(NSString *)actionText when:(NSDate *)when count:(NSInteger)count option:(NSDictionary *)options
{
UILocalNotification *notif = [[UILocalNotification alloc] init];
//Setup code here...
notif.userInfo = options;
ALog(@"Sending notification %@ %@", notif.alertBody, notif.userInfo);
//Print: Sending notification Task Col 0 0 {id = "1-1"};
[[UIApplication sharedApplication] scheduleLocalNotification:notif];
}
Затем, когда я пытаюсь найти его:
+ (void) cancelNotification:(NSString *)theId {
for(UILocalNotification *aNotif in [[UIApplication sharedApplication] scheduledLocalNotifications])
{
if([[aNotif.userInfo objectForKey:@"id"] isEqualToString:theId])
{
// Never come here: userInfo is nil!!!
}
}
}
Всегда пользовательская информация равна нулю. Я посылаю диктовку:
NSMutableDictionary *info = [[NSMutableDictionary alloc] init];
[info setObject:theId forKey:@"id"];
или
[NSMutableDictionary dictionaryWithObject:theId forKey:@"id"]
с тем же результатом. (идентификатор NSString)