uilocalnotification не стреляет в точное время - PullRequest
3 голосов
/ 21 февраля 2011

Я хочу реализовать uilocalnotification в моем приложении.но проблема в том, что он не стреляет в точное время.это стреляет через 30 - 40 секунд от данного времени стрельбы.Есть ли что-то, чего мне не хватает, или это распространенное мнение в UILocalNotification.

Спасибо

Ответы [ 3 ]

9 голосов
/ 21 февраля 2011

UILocalNotification разработано для вещей, которые происходят в будущем, поэтому ошибка в 30 секунд будет в порядке (то есть, если у меня встреча в 15:00, то сообщить мне в 15:00:30 не будет проблемой :)

Если вы хотите большей точности, чем вам, вам нужно, чтобы ваше приложение работало и использовало NSTimer.

3 голосов
/ 28 марта 2011

Я знаю, что это старый вопрос, но я только что понял, вы можете использовать dateByAddingTimeInterval : метод.

notif.fireDate = [[datePicker date] dateByAddingTimeInterval:-30];
1 голос
/ 12 января 2017

Вы можете установить fireDate с помощью NSDateComponents, в котором вы можете установить секунды для срабатывания. Когда я устанавливаю его на 0, это не работает, но работает, если я устанавливаю его на 1 секунду. Опоздание на 1 секунду будет в порядке по сравнению с 30-40 секундами.

NSCalendar *cal = [NSCalendar currentCalendar];
    NSDateComponents *dateComps = [cal components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay |NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond   fromDate:fireDate];
    [dateComps setSecond:1];
    [dateComps setNanosecond:00];
    NSDate *newDate = [cal dateFromComponents:dateComps];
    fireDate = newDate;
...