iOS 请求失败后,取消网络请求减少内存消耗

//DD_V_T_APIClient 继承自 AFHTTPSessionManager

- (void)cancelRequet:(NSString *)requestPath {

//1.先获取所有的任务,包括请求,下载,上传等

    [[[DD_V_T_APIClient sharedClient] session] getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks) {

//2.调用取消请求

        [self cancelTasksInArray:dataTasks withPath:requestPath];

        [self cancelTasksInArray:uploadTasks withPath:requestPath];

        [self cancelTasksInArray:downloadTasks withPath:requestPath];

    }];

}

- (void)cancelTasksInArray:(NSArray *)tasksArray withPath:(NSString *)path {

//3.遍历该请求类型下所有的网络请求

    for (NSURLSessionTask *task in tasksArray) {

        NSRange range = [[[[task currentRequest] URL] absoluteString] rangeOfString:path];

//4.如果该请求的地址找不到,取消任务

        if (range.location != NSNotFound) {

            [task cancel];

        }

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容