2016-02-09 2 views
1

Мое приложение уведомляет пользователя (используя UILocalNotification) пользователя каждый раз, когда он приближается к одному из магазинов моего клиента, даже в фоновом режиме.Отключение UILocalNotifications за определенное время

У меня есть кнопка отключения звука, когда пользователь нажимает кнопку, появляется экран actionSheet и спрашивает его, как долго он будет отключать приложение (5 часов, 24 часа, 1 неделя или 1 месяц).

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

Каков наилучший способ для этого?

Я по достоинству оценю пример кода.

Спасибо!

+0

Что вы пробовали? Поскольку ваше приложение должно генерировать уведомления, почему бы не рассчитать истечение периода отключения звука и сохранить его. Перед созданием нового уведомления проверьте текущую дату на сохраненную дату. – Avi

+0

@Avi вы можете дать мне пример кода для этого? Может быть, я это пойму больше –

+0

Какая часть тяжелая? хранения даты для будущего сравнения? Создание даты? Сравнение даты? Вы даже не указали нам никакого кода. – Avi

ответ

0
//fire local notification 

    NSDate * storedDate // Store your date when setting the mute 
    int tillHoursForMute // hours for mute 

    muteDate = <storedDate+tillHoursForMute> //concatenate the hours into date 
    if ([muteDate compare:firingDate] == NSOrderedDescending && [muteDate compare:firingDate] == NSOrderedAscending) { 
    //fire Notification   

    } else { 
     //Mute time 

    }  

Примечание: просто написали шаги, измените его в соответствии с языковыми стендами.

+0

Это действительно ужасный псевдокод, потому что вы не должны сравнивать даты таким образом. – Avi

+0

позволяет ему обрабатывать соответствующее кодирование –

+0

Храните эту опцию в качестве логического значения ('NSUserDefaults' - хорошее место). Не создавайте уведомление, если это значение установлено, * или *, если дата истечения срока действия не прошла. – Avi

Смежные вопросы