Cela peut être implémenté aussi simplement que ceci :
Définissez une variable de type booléen. Cette variable sera jugée à chaque boucle. Si elle est vraie, print(666) sera imprimé et le thread dormira pendant 1 seconde, puis répétez le cycle
J'ai essayé le .concurrentPerform de GCD, mais il ne peut exécuter qu'un certain nombre, ce n'est pas vraiment une boucle infinie, et je ne sais pas comment définir l'intervalle de temps
Il existe aussi la méthode NStimer sur Internet, mais je ne le sais pas. Je ne sais pas quel framework a été importé et il n'y a pas de classe NSTimer (projet Swift).
J'ai essayé Cadisplaylink et le problème a été résolu, mais lors de son initialisation en tant que variable globale,
let displaylink = CADisplayLink(target: self,
selector: #selector(step))
Une erreur sera signalée, pourquoi ?
J'ai confirmé dans les commentaires que le titre de la question est
target: self
et une erreur a été signalée ici.target: self
这里报错了。以下是题主之后的疑问:
简单理解就是后面参数
Voici les questions après la question : 🎜 🎜Une compréhension simple est que le paramètre suivantselector
的所属。一般时候,
selector
都是指向某个类内的某个方法,当let displaylink = CADisplayLink(target: self, selector: #selector(step))
是写在相同类中时,自然target
就是self
selector
lui appartient.Généralement,
selector
pointe vers une méthode dans une certaine classe Lorsquelet displaylink = CADisplayLink(target: self, selector: #selector(step))
Lorsqu'il est écrit. la même classe, naturellementtarget
estself
. 🎜