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 à
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 ?
Utilisez NSOperationQueue
Créez un
NSOperationQueue
et définissez sonmaxConcurrentOperationCount
sur1
afin qu'il soit exécuté séquentiellement.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 à
.Ensuite, mettez toutes les opérations dans un tableau d'opérations
Alors
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 ?