Существует одно решение использовать NSTimer
для подсчета секунд. и когда вы сначала вызываете метод loadData("sync")
, запустите таймер. и увеличивать второе. и когда вам нужно вызвать эту функцию, проверьте вычисленные секунды, если она> 30, затем вызовите sync
, иначе звоните load
. см. ниже код.
var timer : NSTimer!
var second = 0
override func viewDidLoad() {
super.viewDidLoad()
// here you start your first sync method.
loadData("sync")
// start the timer here so you can get how many seconds before you started or called your method.
timer = NSTimer()
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: #selector(ViewController.calculateSeconds), userInfo: nil, repeats: true)
}
func calculateSeconds() {
second += 1
}
теперь, когда вы должны вспомнить метод loadData
проверить вторую переменную, если> 30 затем вызвать sync
еще load
. и invalidate
этот таймер, чтобы таймер остановил мониторинг или вычислил второй.
Нравится это.
func whatever() {
if second > 30 {
loadData("sync")
} else {
loadData("load")
}
second = 0
timer.invalidate()
timer = nil
}
Не могли бы вы объяснить подробнее :) –