Heim > Fragen und Antworten > Hauptteil
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?
过去多啦不再A梦2017-05-31 10:34:00
在评论中确认了题主是 target: self
这里报错了。
以下是题主之后的疑问:
哦对,当时controller 还没初始化了,谢谢你.还有能再问一下这个 target:变量有什么用吗?只知道一般的 target 都填 self,但不知道填 self 是为了啥,是设置代理的吗?
简单理解就是后面参数 selector
的所属。
一般时候,selector
都是指向某个类内的某个方法,当 let displaylink = CADisplayLink(target: self, selector: #selector(step))
是写在相同类中时,自然 target
就是 self
了。