Проблема: я делаю функцию remindMe для запуска нескольких таймеров, которые можно вызывать любым из этих способов;
- remindMe (TimerID, "at", atSomeEndTime, onSomeEndDate)
- remindMe (TimerID, "in", x, y ,lativeStartDateTime, tillSomeEndTime, tillSomeEndDate), где x = Int и y = любой из 'лет / месяцев / недель / дней / часов / минут / секунд', с или
- remindMe (TimerID, "each", x, y, atSomeTime, fromSomeStartDate / now, tillSomeEndDate)
т.е.
- remindMe(125, "at", 14:59, 30/10/2020)
- remindMe(126, "in", 30, minutes, now)
- remindMe(127, "every", 1, week, 09:00, 25/10/2020, 31/12/2020)
существует элегантный способ перегрузки функции, так что я могу передавать буквенные строки, такие как «минуты» или «сейчас», из среды выполнения непосредственно в функцию без какой-либо последующей обработки ввода конечных пользователей.
Может ли одна и та же функция принимать различное количество входных параметров?
Как долго я могу установить таймеры? Является ли это эффективным способом сделать это, пока я читаю, отправка таймера требует много энергии?
Как заставить эту функцию работать в фоновом режиме, даже если пользователь переключает контекст или другое приложение или прерывается с помощью вызова или закрывает приложение? Делает ли это какой-нибудь метод в уведомлении EventKit или Apple? Кроме того, могу ли я вывести свое приложение на передний план (или даже открыть его) с разрешения пользователей после завершения таймера?
Можете ли вы приостановить таймеры, не аннулируя их? Что произойдет, если вы не аннулируете таймеры в своем коде?
Я предполагаю, что мне придется обновить список всех таймеров ОТКРЫТО, чтобы сохранить их на устройстве пользователя для долгосрочного хранения?