3

J'ai eu une application dans laquelle je fais appel demandes synchronisées à l'aide des gestionnaires de session, dansComment annuler toutes les requêtes afhttpsessionmanagers en arrière-plan?

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

J'utilise un

global
@property(strong,nonatomic)AFHTTPSessionManager *manager; 

et allouant viewDidLoad comme

manager = [[AFHTTPSessionManager alloc] init]; 
    manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil]; 
    AFJSONResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments]; 

    [manager setResponseSerializer:responseSerializer]; 

et un groupe de demandes se passe dans un cycle. il y a une option pour moi d'annuler toutes les demandes de moi où je fais

for (manager in self.arrayOfTasks) { 

     [manager invalidateSessionCancelingTasks:YES]; 
    } 




    manager=nil; 

, mais la question est également après l'annulation de cette demande se produisent encore et again.it n'est pas cancelling.can quelqu'un me guide pour trouver où je vais mal?

+0

voir ceci http://stackoverflow.com/questions/39092183/cancel-all-operations-afnetworking-3-0 –

Répondre

1

Vous pouvez essayer ci-dessous le code pour annuler toute la tâche a commencé pour AFHTTPSession Responsable:

for (NSURLSessionTask *task in manager.tasks) 
    { 
     [task cancel]; 
    } 

également pour le téléchargement individuel et télécharger tâche annulation:

Télécharger tâche annulation:

for (NSURLSessionTask *task in manager.downloadTasks) 
     { 
      [task cancel]; 
     } 

Télécharger l'annulation de la tâche:

for (NSURLSessionTask *task in manager.uploadTasks) 
     { 
      [task cancel]; 
     }