Comment utiliser correctement dispatch_sync, dispatch_async, dispatch_after et autres fonctions GCD en Swift 3, 4 et versions ultérieures ?
Bonjour à tous ! Je passe d'Objective-C à Swift et je suis confus avec Grand Central Dispatch (GCD) après la sortie de Swift 3. Avant, j'écrivais quelque chose comme :
```swift
dispatch_async(dispatch_get_main_queue(), {
// mise à jour de l'UI
})
```
Mais maintenant Xcode me dit que c'est incorrect. Je comprends qu'Apple a modifié l'API, mais je ne trouve pas d'explication claire sur la façon de travailler avec GCD en Swift 3, 4 et versions ultérieures. J'ai besoin de comprendre :
1. Comment exécuter du code de manière asynchrone sur la file principale (pour mettre à jour l'UI) ?
2. Comment exécuter du code de manière synchrone (dispatch_sync) sur une file d'arrière-plan ?
3. Comment créer un délai avant l'exécution (dispatch_after) ?
4. Comment créer ma propre file d'attente ?
J'ai essayé d'écrire ceci, mais cela ne fonctionne pas :
```swift
DispatchQueue.main.async {
// code
}
DispatchQueue.global().sync {
// code
}
```
S'il vous plaît, expliquez à un débutant en Swift comment utiliser correctement GCD en Swift moderne. Idéalement avec des exemples que je pourrais copier et utiliser immédiatement.