Es gibt eine Lösung Verwenden Sie NSTimer
, um die Sekunden zu zählen. und wenn Sie zuerst die loadData("sync")
Methode aufrufen, starten Sie den Timer. und inkrementiere die Sekunde. und wenn Sie diese Funktion aufrufen müssen, überprüfen Sie die berechneten Sekunden, wenn sie> 30 sind, und rufen Sie dann sync
an, andernfalls rufen Sie load
an. Siehe den folgenden Code.
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
}
jetzt, wenn Sie die loadData
Methode erinnern an die zweite Variable überprüfen, wenn es> 30 rufen dann sync
sonst load
. und invalidate
, dass der Timer damit aufhört zu überwachen oder die zweite zu berechnen.
So.
func whatever() {
if second > 30 {
loadData("sync")
} else {
loadData("load")
}
second = 0
timer.invalidate()
timer = nil
}
Könnten Sie bitte mehr erklären :) –