recherche

Maison  >  Questions et réponses  >  le corps du texte

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

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

黄舟黄舟2772 Il y a quelques jours850

répondre à tous(3)je répondrai

  • PHP中文网

    PHP中文网2017-04-18 09:35:38

    Utilisez NSOperationQueue

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:35:38

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

    queue.addOperationWithBlock {
        manager.request(.GET, ...)
    }

    répondre
    0
  • 高洛峰

    高洛峰2017-04-18 09:35:38

    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 ?

    répondre
    0
  • Annulerrépondre