Comment marche NSTimer ?
Patyom
Membre
Bonjour,
Je dois récupérer des valeurs d'un site internet au rythme d'1 mn et bien sur contrôler s'il y a eu changement.
Je n'ai jamais fait çà avec swift, quelle instruction peut-on utiliser ?
J'ai un peu cherché, NSTimer doit surement être la solution ?
Est-ce que je peux faire tourner ce prog sans pour autant ralentir le reste.
Merci d'avance.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bonjour,
Les requêtes ne doivent pas être fait dans le main Dispatch et NSTimer est une solution pour lancer quelque chose de manière régulière. Attention en Swift il faut utiliser Timer et non NSTimer. Rappel toi que NS signifie souvent Not Swift.
Voici un exemple de code d'utilisation, à toi de l'adapter ou de nous en dire plus sur ton projet.
La solution de iLandes est basée sur l'ancien Timer d'Objective-C, d'où la présence du symbole @objc devant la méthode à appeler (Xcode l'ajoute automatiquement).
Depuis iOS 10, il existe une autre syntaxe (exit la rétro-compatibilité iOS 9) plus moderne, utilisant les blocs :
a
L'intérêt du block est de mettre le code dans le block, si c'est pour faire appel à une fonction externe...
Par contre pour la lecture du code quand le block n'est pas trop chargé, c'est bien de regrouper les choses...`
C'est juste pour troller car j'ai pas mal de téléchargement à faire aujourd'hui xd
NSTimer est géré par la runloop (classe NSRunLoop, qui correspond à la boucle d'événement de l'application, qui tourne sur le thread principal). D'une part, les NSTimers sont imprécis (mais vraiment!), d'autres part, ils sont totalement inadaptés à tourner sur un thread secondaire, et encore moins en background.
Préfère un timer fournir par GCD (voir DispatchSourceTimer).
Merci les gars,
J'ai commencé par mettre en application ce que vous m'avez gentiment proposé et ma foi, çà marche bien.
Maintenant je vais inclure l'accès à ma page internet pour en extraire mes valeurs que je vais ensuite stocker dans un fichier.
Je vais être obliger d'enregistrer mes valeurs à chaque fois que j'aurai fini de les extraire, j'ai des pertes de signal avec ma Livebox 1 à 2 fois dans la journée.
Je vous tiens au courant, merci.
ça c'est de l'humour ! NS ça signifie "NEXT STEP".
aha, il est loin le Prochain (NeXT) Pas (Step). Mais c'est avec nostalgie que ceux qui avait cru au renouveau voulu par Steve Job. Pour la culture : NeXT
Je troll de plus en plus hihi
Bonjour,
j'ai bien assimilé le Timer et c'est bon. Mon petit prog fonctionne à merveille, je me contente de le faire tourner avec un laps de temps d'1 minute.
Bon j'ai créé un petit prog avec IB mais je n'arrive pas à saisir la notion de "FirstReponder" je ne vois pas à quoi cela peut se rapporter.
y-a-til quelqu'un qui pourrait m'expliquer la chose
Merci
Imagine une interface avec plusieurs objets graphiques posés les uns sur les autres. Lequel doit être pris en compte pendant un événement tactile ? C'est problématique surtout si certains se recouvrent partiellement. FirstReponder permet d'indiquer quel est le premier (First) objet graphique concerné par une interaction tactile.