Es kann so einfach implementiert werden:
Definieren Sie eine Variable vom Typ Bool, die bei jeder Schleife beurteilt wird. Wenn sie wahr ist, wird print(666) gedruckt und der Thread wird für 1 Sekunde in den Ruhezustand versetzt Wiederholen Sie den Zyklus
Ich habe .concurrentPerform von GCD ausprobiert, aber es kann nur eine bestimmte Anzahl ausführen, es ist nicht wirklich eine Endlosschleife und ich weiß nicht, wie ich das Zeitintervall einstellen soll.
Es gibt auch die NStimer-Methode im Internet, aber ich weiß nicht Ich weiß nicht, welches Framework importiert wurde, und es gibt keine NSTimer-Klasse (Swift-Projekt).
Ich habe Cadisplaylink ausprobiert und das Problem wurde gelöst, aber als ich es als globale Variable initialisierte,
let displaylink = CADisplayLink(target: self,
selector: #selector(step))
Es wird ein Fehler gemeldet, warum?
在评论中确认了题主是
target: self
这里报错了。以下是题主之后的疑问:
简单理解就是后面参数
selector
的所属。一般时候,
selector
都是指向某个类内的某个方法,当let displaylink = CADisplayLink(target: self, selector: #selector(step))
是写在相同类中时,自然target
就是self
了。