ios - Alamofire 如何将request添加到一个队列里面,顺序执行??
黄舟
黄舟 2017-04-18 09:33:38
0
3
843

如题,Alamofire 如何将request添加到一个队列里面,顺序执行??

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(3)
Ty80

Utilisez NSOperationQueue

伊谢尔伦

Créez un NSOperationQueue et définissez son maxConcurrentOperationCount sur 1 afin qu'il soit exécuté séquentiellement.

queue.addOperationWithBlock {
    manager.request(.GET, ...)
}
小葫芦

D'accord, laissez-moi poster le code

Si la requête réseau elle-même est asynchrone, alors rejoindre la file d'attente prête à l'emploi sera certainement directement asynchrone et l'exécution directe de la suivante ne peut pas être directement mise en file d'attente pour l'exécution.

Vous avez donc deux méthodes pour y faire face. L'une consiste à bloquer avec un signal et l'autre consiste à rappeler l'opération suivante une fois terminée. En bref, c'est similaire à

.
 NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{ 
    //your request
}];

Ensuite, mettez toutes les opérations dans un tableau d'opérations

Alors

 NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{ 
    //your request
    // success in your request--> callback next operation
    // fail in your request-->do something
}];

Le blocage du signal peut également être utilisé, mais l'efficacité sera compromise. Cela devrait être facile à comprendre lorsqu'il est écrit comme ceci, n'est-ce pas ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal