Je développe une application de chat en utilisant xmppframework dans iOS 5; cela fonctionne parfaitement.
Mais j'ai mis à jour mon Xcode à 4.5.1, iOS 5 à iOS 6 et mon Mac OS à 10.7.5, et le projet n'a pas fonctionné en raison de problèmes de dépréciation. J'ai remplacé toutes les méthodes par de nouvelles méthodes dans iOS 6 sauf celle-ci:
dispatch_get_current_queue()
Comment puis-je remplacer cette méthode dans iOS 6?
Cela dépend de ce que vous devez réaliser avec cet appel.
Apple indique qu'il devrait être utilisé de toute façon pour le débogage.
Peut-être que la file d'attente n'a pas d'importance (car vous avez juste besoin d'une file d'attente en arrière-plan), alors obtenez une file d'attente globale avec une priorité spécifique (dispatch_get_global_queue(dispatch_queue_priority_t priority, unsigned long flags);
)
OU,
Si vous devez exécuter certains morceaux de code dans la même file d'attente, créez une file d'attente, conservez-la et répartissez toutes vos tâches là-bas.
Que diriez-vous d'utiliser NSOperationQueue
?
-(void) doSomeThing:(void (^)(BOOL success)) completionHandler
{
NSOperationQueue* callbackQueue = [NSOperationQueue currentQueue];
if(!callbackQueue) {
callbackQueue = [NSOperationQueue mainQueue];
}
dispatch_async(...,^{
// do heavyweight stuff here
// then call completionHandler
if(completionHandler) {
[callbackQueue addOperationWithBlock:^{
completionHandler(...);
}];
}
});