Objective-C: запускает дату запуска из целочисленной переменной?

#objective-c #integer #uilocalnotification

#objective-c #целое число #uilocalnotification

Вопрос:

я хочу использовать «дату запуска» для локального уведомления. Как я могу использовать целочисленную переменную, содержащую секунды, для запуска firedate?

 int intTime;
intTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.5*3600;
notif.fireDate = (intTime);
  

Я знаю, что приведенный выше код неверен, просто дайте мне подсказку, ребята! Заранее спасибо.

ps. Когда я пытаюсь использовать этот код, я получаю «несовместимое преобразование целого числа в указатель, присваивающее ‘NSDate * из int».

Комментарии:

1. Что не так с кодом? Выдает ли это ошибки? Работает ли он не так, как ожидалось? Будьте конкретны.

2. Я отредактировал сообщение. Пожалуйста, прочитайте ps.

Ответ №1:

Это fireDate должно быть NSDate* так, поскольку вы знаете, что ваше решение неверно. Если ваши вычисления приводят к секундам, которые вы хотите использовать от текущего времени до срабатывания, то будет работать следующий код.

 NSTimeInterval time = ([mAhLabel.text floatValue]/chargerSlider.value)*1.5*3600;
notif.fireDate = [NSDate dateWithTimeIntervalSinceNow:time];
  

Также убедитесь, что деление на 0 невозможно chargerSlider.value с помощью либо установки минимального значения, либо проверки значения перед делением. В противном случае результат был бы NaN .

Ответ №2:

fireDate Свойство UILocalNotification имеет NSDate тип. Вам нужно будет создать NSDate first с целым числом как количество времени в будущем, которое вам нужно. Например, если бы мы искали дату запуска, которая через час, это выглядело бы так.

 notif.fireDate = [NSDate dateWithTimeIntervalSinceNow:3600];