Пользователь может отключить локальные уведомления?

Я создал приложение, которое даст пользователю ежедневное уведомление в 9 утра, но хочет, чтобы пользователь мог отключить его, если захочет.

Я установил набор настроек для приложения и настроил ползунок для enableNotifications. Когда я создаю и тестирую приложение, настройки там, и я могу включить или выключить их … но он, похоже, не регистрирует его в приложении. Как настроить приложение для проверки того, включена или выключена установка уведомлений?

Я увидел этот ответ: определите на iPhone, если пользователь включил push-уведомления, но я не знаю, куда его вставить и правильно программировать (если / else-инструкции и т. Д.),

Вот код, в котором создается уведомление:

-(id) getCommandInstance:(NSString*)className { /** You can catch your own commands here, if you wanted to extend the gap: protocol, or add your * own app specific protocol to it. -jm **/ [[UIApplication sharedApplication] cancelAllLocalNotifications]; [UIApplication sharedApplication].applicationIconBadgeNumber = 0; NSCalendar *calender = [NSCalendar autoupdatingCurrentCalendar]; NSDate *currentDate = [NSDate date]; NSDateComponents *dateComponents = [calender components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:currentDate]; NSDateComponents *temp = [[NSDateComponents alloc]init]; [temp setYear:[dateComponents year]]; [temp setMonth:[dateComponents month]]; [temp setDay:[dateComponents day]]; [temp setHour: 22]; [temp setMinute:00]; NSDate *fireTime = [calender dateFromComponents:temp]; [temp release]; // set up the notifier UILocalNotification *localNotification = [[UILocalNotification alloc]init]; localNotification.fireDate = fireTime; localNotification.timeZone = [NSTimeZone defaultTimeZone]; localNotification.alertBody = @"Don't Forget Your 365 Day Photo Challenge!"; localNotification.alertAction = @"LAUNCH"; localNotification.soundName = UILocalNotificationDefaultSoundName; localNotification.repeatInterval = NSDayCalendarUnit; localNotification.applicationIconBadgeNumber = 0; [[UIApplication sharedApplication]scheduleLocalNotification:localNotification]; [localNotification release]; return [super getCommandInstance:className]; } 

Основываясь на вашем описании, я думаю, вы спрашиваете, как получить значение параметра уведомления из предпочтений вашего приложения, то есть, следует ли включать или отключать уведомление.

Вы должны использовать [NSUserDefaults standardUserDefaults] для доступа к значениям предпочтений. См. Этот документ « Доступ к значениям предпочтений» .

Если у вас есть только одна локальнаяNotification и вы хотите ее отменить, вы можете просто позвонить:

 [[UIApplication sharedApplication] cancelAllLocalNotifications]; 

Это не приведет к ошибке, если нет никаких локальныхNotifications. Вы можете вызвать это нажатием кнопки IBAction. Если вы хотите установить состояние коммутатора на основе наличия каких-либо локальныхNotifications, вы можете проверить, есть ли они:

 NSArray* localNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications]; 

Если localNotifications.count> 0, то у вас есть запланированные уведомления.