3

セッションマネージャーを使用して同期リクエストを呼び出すアプリケーションがありました。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

私はグローバルを使用しています

@property(strong,nonatomic)AFHTTPSessionManager *manager;

viewdidloadのように割り当てます

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];

リクエストのグループがサイクルで発生しています。私が行っているすべてのリクエストをキャンセルするオプションがあります

for (manager in self.arrayOfTasks) {

        [manager invalidateSessionCancelingTasks:YES];
    }




    manager=nil;

、しかし、問題はキャンセルした後でも、このリクエストは何度も何度も発生しています.キャンセルではありません。

4

1 に答える 1

5

以下のコードを試して、AFHTTPSession Manager に対して開始されたすべてのタスクをキャンセルできます。

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

個々のアップロードおよびダウンロード タスクのキャンセルについても:

ダウンロード タスクのキャンセル:

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

アップロード タスクのキャンセル:

 for (NSURLSessionTask *task in manager.uploadTasks)
        {
            [task cancel];
        }
于 2017-04-03T13:29:12.003 に答える