Swift: Как использовать Timer для запуска c раз в минуту, чтобы предотвратить спам в комментариях? - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь создать функцию, позволяющую пользователям отправлять сообщения раз в 60 секунд.

Я подумал, что хорошим способом для этого может быть использование таймера в блоке didSet переменная bool, которая отслеживает, может ли пользователь отправить сообщение, и сбрасывает bool обратно в false каждые 60 секунд. Пользователь может попытаться отправить много сообщений в течение 60 секунд, поэтому он должен работать более одного раза, поэтому я проверяю, работает ли таймер.

Как бы вы это сделали?

Вот мой код, который я считаю близким:

private var isTimerOn: Bool = false
private var isSending: Bool = false {
    didSet {
        if !isTimerOn {
            let _ = Timer.scheduledTimer(withTimeInterval: 60, repeats: true){ _ in
                self.isSending = false
                self.isTimerOn = true
             }
        }
    }
}

func sendMessage(){
    isSending = true
}
...