iOS 网络优化--页面返回的时候取消网络请求
发布日期:2021-08-31 13:57:23 浏览次数:23 分类:技术文章

本文共 1736 字,大约阅读时间需要 5 分钟。

1.页面返回的时候,将取消网络请求。

  场景应用:在一个界面进行多个请求的时候,用户有可能在网路请求没有完成时点击了返回按钮,

此时ViewController不会马上销毁,要等到网络请求返回并执行完毕block后才会销毁ViewController。

  场景应用:在流程界面获取关联流程数据的条数,在流程界面请求完数据后将数据传过去,若没有

完场,则在关联流程界面再次请求数据,需要将上一界面的网络请求取消

  

#import <UIKit/UIKit.h>

@interface BaseViewController : UIViewController

//记录将需要在退出ViewController取消的请求

- (void)addSessionDataTask:(NSURLSessionDataTask *)task;

//移除已经请求成功的请求

- (void)removeSessionDataTask:(NSURLSessionDataTask *)task;

//取消所有的请求

- (void)cancelAllSessionDataTask;

@end

 

#import "BaseViewController.h"

@interface BaseViewController ()

@property (nonatomic, strong) NSMutableArray<NSURLSessionDataTask *> *sessionDataTaskMArr;

@end

@implementation BaseViewController

- (void)viewDidLoad {

  [super viewDidLoad];
  // Do any additional setup after loading the view.
}

- (NSMutableArray *)sessionDataTaskMArr {

  if (_sessionDataTaskMArr == nil) {
    _sessionDataTaskMArr = [NSMutableArray array];
  }
  return _sessionDataTaskMArr;
}

- (void)addSessionDataTask:(NSURLSessionDataTask *)task {

  if (task == nil) {
  return;
  }
  [self.sessionDataTaskMArr addObject:task];
}

- (void)removeSessionDataTask:(NSURLSessionDataTask *)task {

  [self.sessionDataTaskMArr removeObject:task];
}

- (void)cancelAllSessionDataTask {

  if (self.sessionDataTaskMArr.count <= 0) {
  return;
  }
  for (NSURLSessionDataTask *dataTask in self.sessionDataTaskMArr) {
    if (dataTask.state == NSURLSessionTaskStateRunning || dataTask.state == NSURLSessionTaskStateSuspended ) {
      [dataTask cancel];
    }
  }
  [self.sessionDataTaskMArr removeAllObjects];
}

- (void)didReceiveMemoryWarning {

  [super didReceiveMemoryWarning];
  // Dispose of any resources that can be recreated.
}

 

 

 

转载于:https://www.cnblogs.com/lcl15/p/9681409.html

转载地址:https://blog.csdn.net/weixin_34077371/article/details/93068129 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:学会批处理,用心学很容易
下一篇:vuejs7-v-for指令

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月22日 19时30分57秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章