Здесь в методе myAPICall()
я вызываю другой метод, то есть COStatusAPI()
каждые 5 секунд до 90 секунд.
Здесь COStatusAPI()
— вызов API. т. е. я захожу на сервер каждые 5 секунд. В ответ я получу COStatus как 1 или 0.
Если я получаю COStatus как 1, я останавливаю таймер и перехожу к другому viewController, а если я получаю COStatus как 0 в течение 90 секунд. Я останавливаю таймер и показываю предупреждение.
Но здесь моя проблема в том, что таймер не останавливается. например, если я получаю COStatus как 1, в фоновом режиме работает таймер. Итак, через 90 секунд я получаю предупреждающее сообщение.
Таким же образом до 90 секунд. Если я получаю COStatus как 0, это означает, что я показываю предупреждение. Это оповещение постоянно повторяется.
как этого добиться?. Может ли кто-нибудь помочь мне с этим
var myTimer : Timer?
var timeController : Bool = true
func myAPICall(){
self.loadingview()
if self.myTimer == nil {
self.myTimer = Timer.scheduledTimer(timeInterval: 5.0, target: self, selector: #selector(self.COStatusAPI), userInfo: nil, repeats: self.timeController)
}
}
@objc func COStatusAPI(){
if COStatus == 0{
self.timeController = true
let when = DispatchTime.now() + 90
DispatchQueue.main.asyncAfter(deadline: when) {
self.timeController = false
if self.acceptOrRejectTimer != nil {
self.acceptOrRejectTimer!.invalidate()
self.acceptOrRejectTimer = nil
}
self.hideloadingView()
//showing alert
}
}
if COStatus == 1{
self.timeController = false
if self.acceptOrRejectTimer != nil {
self.acceptOrRejectTimer!.invalidate()
self.acceptOrRejectTimer = nil
}
self.hideloadingview()
//navigating to next view controller
}
}