Проблема в том, что мои уведомления не проходят, когда они настроены на. Я поставил указатель даты в перо и кнопку под ним. Предполагается, что пользователь должен установить дату в средстве выбора и, нажав кнопку, настроить оповещение на срабатывание за 60 часов до даты. Так что, похоже, у меня просто проблемы с получением фрейнда для распознавания даты в окне выбора даты. Вот код, на мой взгляд контроллер:
- (IBAction)scheduleNotifButton:(id)sender {
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
NSDate *selectedDate = [self.datePicker date];
localNotif.fireDate = [selectedDate dateByAddingTimeInterval:-60*60*60];
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertBody = @"Event is in three days!";
localNotif.alertAction = nil;
localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 0;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Event scheduled."
message:@"You will be notified three days before the event."
delegate:nil
cancelButtonTitle:@"Okay."
otherButtonTitles:nil];
[alert show];
}
А вот еще один дополнительный код, если это помогает, это еще один код из моего контроллера представления, который имеет дело с сохранением даты в средстве выбора, введенном пользователем:
- (IBAction)dateChanged:(id)sender
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDate *selectedDate = [self.datePicker date];
[defaults setObject:selectedDate forKey:@"ImportantDatesViewController.selectedDate"];
[defaults synchronize];
}
- (void)viewDidLoad {
NSDate *storedDate = [[NSUserDefaults standardUserDefaults]
objectForKey:@"ImportantDatesViewController.selectedDate"];
if (storedDate == nil) {
storedDate = [NSDate date];
}
[self.datePicker setDate:storedDate animated:NO];
}
Я копаю этот код уже 3 дня и не могу понять, почему мои уведомления не проходят, когда они должны. Любая помощь очень ценится, спасибо!