亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

詳解iOS AFNetworking取消正在進行的網絡請求

2020-07-26 02:26:54
字體:
來源:轉載
供稿:網友

簡介

項目開發時,開發人員經常會遇到一種情況,A控制器push進入B控制器,B控制器正在進行網絡請求,請求未結束時,點擊返回回到A控制器,現在問題出現了,B中網絡請求還在執行,dealloc并未立即調用,為什么會發生這種情況?想在退出當前控制器時取消掉正在進行的請求,怎么做?

網絡請求的封裝

以AFNetworking為例,上我自己的網絡請求封裝主要代碼:

//單例模式+ (HttpManager *)sharedManager{  static dispatch_once_t once;  dispatch_once(&once, ^{    httpManager = [[HttpManager alloc] init];  });  return httpManager;}//網絡類初始化- (id)init{  self = [super init];  if(self)  {    manager = [AFHTTPSessionManager manager];    manager.requestSerializer = [AFJSONRequestSerializer serializer];    manager.responseSerializer = [AFHTTPResponseSerializer serializer];  }  return self;}

注意既然封裝為單例,manager在項目運行期間就只用初始化一次,所以我把它聲明為了一個成員變量?,F在來看看我的網絡請求調用形式:

[[HttpManager sharedManager] dataFromWithBaseURL:BaseURL path:url method:@"POST" timeInterval:10 params:parmas success:^(NSURLRequest *request, NSURLResponse *response, id JSON) {    } failure:^(NSURLRequest *request, NSURLResponse *response, NSError *error, id JSON) {      } error:^(id JSON) {      } finish:^(id JSON) {      }];

相信大部分開發者的封裝格式都是類似的,個別反人類的封裝格式我也沒遇到過。當我在B調用網絡請求時,突然返回到A(此時B中請求還在執行),但是B中dealloc方法并未立即調用,等過幾秒種后,B中請求的數據返回了,然后dealloc才調用。相信很多同學都遇到過這種情況,有人會想是否是block里面有對象產生了循環引用,才發生這種情況。我想說的是,如果真是循環引用,那就會導致控制器的dealloc方法一直不調用,而不是上述情況。

在我看來,應該是使用了這種Block格式發起的網絡請求后,由于還在執行,block里面并未得到響應,所以該block對當前的控制器,有一種強引用的效果,導致控制器退出后,并未釋放掉,直到請求數據返回,block里面得到響應,才算完成,最終調用dealloc方法。

當然,這只是我的見解,有不對的地方請指出來。

取消正在進行的網絡請求

上面講了一大堆廢話,現在來講正題了。由于上述情況的原因,導致我們開發的app在一些非常規操作上,會產生一些不友好的效果?,F在要求就是在退出控制器B后,取消還在B中進行的網絡請求。

要求清晰了,那么要怎么實現,其實很簡單,貼上我的代碼:

- (void)cancelRequest{  if ([manager.tasks count] > 0) {    NSLog(@"返回時取消網絡請求");    [manager.tasks makeObjectsPerformSelector:@selector(cancel)];    //NSLog(@"tasks = %@",manager.tasks);  }}

不要每次請求的時候都去初始化manager(AFHTTPSessionManager)對象,tasks里面裝的就是正在進行的網絡請求,來一張圖就理解了:


manager里面的tasks裝的就是正在執行的網絡請求。執行cancel后,tasks就會清空,網絡請求會進入失敗的狀態,然后響應failure block,得到一個error的信息,表示請求已經成功取消了。

至于后臺服務器是否會因為中斷請求受影響,空閑的同學可以去測試下。

最后

還有一些其它取消請求的方法,就不列出來了,因為要不就沒成功,要不就很麻煩,在這就用了一種我認為最簡單的方法。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品av在线| 疯狂蹂躏欧美一区二区精品| 91久久久久久| 亚洲香蕉成人av网站在线观看| 久久国产精品影视| 人人做人人澡人人爽欧美| 成人精品久久久| 91精品视频在线看| 日韩在线视频中文字幕| 国产精品三级久久久久久电影| 国产丝袜一区二区三区免费视频| 97视频网站入口| 国产成人亚洲精品| 日本欧美在线视频| 国产精品露脸自拍| 精品久久久国产精品999| 亚洲欧美日本另类| 中文字幕精品久久| 91av在线国产| 日韩大片免费观看视频播放| 在线精品高清中文字幕| 色婷婷综合成人| 亚洲成人网av| 欧美激情三级免费| 亚洲美女免费精品视频在线观看| 国产精品一二区| 欧美激情国产高清| 中文字幕综合一区| 91精品啪在线观看麻豆免费| 97国产精品视频| 亚洲成色777777在线观看影院| 成人欧美一区二区三区在线湿哒哒| 欧美精品久久久久久久免费观看| 97色伦亚洲国产| 91精品在线影院| 亚洲已满18点击进入在线看片| 欧美亚洲在线视频| 国产mv免费观看入口亚洲| 日韩精品久久久久久福利| 亚洲天堂网在线观看| 97**国产露脸精品国产| 中文字幕欧美日韩精品| 欧美黑人极品猛少妇色xxxxx| 欧美裸体视频网站| 精品香蕉在线观看视频一| 欧美日韩国产999| 欧洲成人在线视频| 91产国在线观看动作片喷水| 亚洲香蕉成人av网站在线观看| 久久成人综合视频| 97超级碰在线看视频免费在线看| 日韩视频免费在线| 亚洲人线精品午夜| 91爱爱小视频k| 91久久久在线| 中文字幕国产精品| 久久伊人免费视频| 欧美精品精品精品精品免费| 亚洲第一国产精品| 亚洲精品理论电影| 国内精品伊人久久| 在线丨暗呦小u女国产精品| 亚洲精品黄网在线观看| 欧美大片在线看| 欧美电影免费在线观看| 91精品视频一区| 国产精品夜色7777狼人| 日韩精品视频三区| 欧美精品18videos性欧| 国产免费成人av| 国产亚洲欧美视频| 亚洲精品日韩av| 日韩精品高清在线观看| 国产成人综合一区二区三区| 国产在线精品成人一区二区三区| 亚洲精品视频在线播放| 国产中文字幕日韩| 亚洲午夜国产成人av电影男同| 久久免费精品视频| 2019最新中文字幕| 国产精品v日韩精品| 欧洲一区二区视频| 国产精品igao视频| 夜夜嗨av一区二区三区四区| 成人av在线亚洲| 日韩欧美在线字幕| 亚洲精选在线观看| 亚洲精品国产精品国产自| 精品无码久久久久久国产| www.亚洲人.com| 亚洲精品一区二三区不卡| 久久99国产综合精品女同| 中文字幕日本欧美| 色先锋资源久久综合5566| 孩xxxx性bbbb欧美| 国产色婷婷国产综合在线理论片a| 国产精品久久久久久五月尺| 国产精品久久在线观看| 欧美国产日韩中文字幕在线| 欧美性猛交xxxx免费看| 亚洲午夜国产成人av电影男同| 色妞一区二区三区| 韩国国内大量揄拍精品视频| 爽爽爽爽爽爽爽成人免费观看| 亚洲成人在线视频播放| 久久久久久久国产精品| 一本一本久久a久久精品牛牛影视| 精品久久久久久久久久ntr影视| 亚洲精品日韩在线| 91理论片午午论夜理片久久| 欧美xxxx做受欧美| 欧美激情视频网站| 亚洲综合最新在线| 国产精品视频大全| 亚洲国产精品大全| 538国产精品视频一区二区| 国产欧美日韩中文字幕在线| 成人观看高清在线观看免费| 欧美xxxx做受欧美.88| 日本不卡视频在线播放| 欧美大肥婆大肥bbbbb| 在线日韩中文字幕| 日韩av在线网站| 国产精品视频导航| 激情懂色av一区av二区av| 亚洲欧美激情一区| 欧美激情伊人电影| 欧美激情中文字幕在线| 色诱女教师一区二区三区| 韩国19禁主播vip福利视频| 成人在线小视频| 日本欧美国产在线| 欧美激情亚洲视频| 777国产偷窥盗摄精品视频| 日韩免费av片在线观看| 国内精品久久久久久久| 国产深夜精品福利| 久久久亚洲国产天美传媒修理工| 日韩在线视频免费观看| 久久久国产精品免费| 欧美成人免费视频| 亚洲最大福利视频网| 国产精品丝袜白浆摸在线| 色偷偷88888欧美精品久久久| 国产精品一区二区女厕厕| 欧美大尺度激情区在线播放| 精品激情国产视频| 伦伦影院午夜日韩欧美限制| 成人精品一区二区三区电影免费| 亚洲精品电影网在线观看| 成人观看高清在线观看免费| 国产欧美久久一区二区| 精品国产91乱高清在线观看| 欧美日产国产成人免费图片| 亚洲va国产va天堂va久久| 午夜精品久久久久久久99热浪潮| 国产亚洲a∨片在线观看| 中文字幕亚洲欧美日韩2019| 亚洲精品成人久久| 国产激情视频一区| 中文字幕日韩在线播放| 91免费精品国偷自产在线| 精品福利樱桃av导航| 亚洲综合色激情五月|