Vous devriez changer pour ...
dispatch_queue_t myQueue = dispatch_queue_create("com.mysite.page", 0);
dispatch_async(myQueue, ^{});
dispatch_release(myQueue);
... vous devriez appeler dispatch_release
lorsque vous ne avez besoin d'un accès à la file d'attente. Et comme myQueue
est variable locale, vous devez l'appeler là.
Lire la documentation dispatch_queue_create:
Discussion
Les blocs soumis à la file d'attente sont exécutées une à la fois dans l'ordre FIFO. Notez cependant que les blocs soumis à des files d'attente indépendantes peuvent être exécutés simultanément les uns par rapport aux autres.
Lorsque votre application n'a plus besoin de la file d'attente d'expédition, elle doit la libérer avec la fonction dispatch_release. Tous les blocs en attente soumis à une file d'attente contiennent une référence à cette file d'attente, de sorte que la file d'attente n'est pas libérée tant que tous les blocs en attente ne sont pas terminés.
Est-ce encore vrai? Avec ARC, nous n'avons pas besoin de le libérer – hfossli