2017-06-22 6 views
1

ich einen Swift-Code haben,iOS - Timer Wähler Thread

var timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(self.updateAction), userInfo: nil, repeats: true) 

Dieser Code aus Haupt-Thread ausgeführt wird, sagen wir mal, viewDidLoad(). Ich frage mich, ob dieser Selektor garantiert im Haupt-Thread läuft oder nicht. Mit anderen Worten, wenn ich UI-Operationen innerhalb habe, sollte ich den Code explizit in den Haupt-Thread einbinden oder nicht.

Antwort

1

Ihre Timer wird immer auf Ihrem Haupt-Thread ausgeführt, so dass Sie Ihre Benutzeroberfläche immer in Ihrem aktualisieren können.

+0

Ich habe mich gefragt, ob es eine Richtlinie von Apple zu diesem Konzept gibt. Läuft Selektor immer im Hauptfaden, egal von welcher Lauffläche er aufgerufen wird? Irgendeine Art von Referenz? Vielen Dank. –

+1

Ja, es wird immer vom Haupt-Thread für den 'Timer' aufgerufen. Apple [Referenz] (https://developer.apple.com/documentation/foundation/timer) für Timer. –