En Java, vous pouvez suspendre l'exécution du thread en cours pendant un certain temps en utilisant Thread.sleep()
. Y a-t-il quelque chose comme ça dans Objective-C?
112
En Java, vous pouvez suspendre l'exécution du thread en cours pendant un certain temps en utilisant Thread.sleep()
. Y a-t-il quelque chose comme ça dans Objective-C?
Oui, il y a + [NSThread sleepForTimeInterval:]
(Juste pour que vous sachiez pour les questions futures, Objective-C est le langage lui-même; la bibliothèque d'objets (l'un d'entre eux au moins) est Cocoa.)
Dormir une seconde en Java:
Dormir pendant une seconde en Objectif C:
la source
Pourquoi dormez-vous? Lorsque vous dormez, vous bloquez l'interface utilisateur et le chargement de toute URL d'arrière-plan pas dans d'autres threads (l'utilisation des méthodes asynchrones NSURL fonctionne toujours sur le thread actuel).
Il y a de fortes chances que vous souhaitiez vraiment performSelector: withObject: AfterDelay. C'est une méthode sur NSObject que vous pouvez utiliser pour appeler une méthode à un intervalle prédéterminé plus tard - elle planifie un appel qui sera effectué ultérieurement, mais tous les autres éléments que le thread gère (comme l'interface utilisateur et les charges de données) continuer encore.
la source
Bien sûr, vous pouvez également utiliser les appels standard Unix sleep () et usleep (). (Si vous écrivez Cocoa, je resterais avec le [NSThread sleepForTimeInterval:], cependant.)
la source
Si vous utilisez NSThread sleepForTimeInterval (code commenté) pour dormir, la récupération des données sera bloquée, mais + [NSThread sleepForTimeInterval:] (méthode checkLoad) ne bloquera pas la récupération des données.
Mon exemple de code comme ci-dessous:
la source
usleep () peut également être utilisé comme ive utilisé pour mettre en pause le thread actuel à certains moments
la source