国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iOS如何解決并發請求時,只接受最后一個請求返回的結果

2019-11-14 18:18:08
字體:
來源:轉載
供稿:網友

 
大致意思是 雖然NSOperation 的cancel 并不能取消請求,但是可以對這個NSOperation進行標記。
當cancel 屬性是YES時,表明 NSOperation雖然已經執行,并返回了結果,但是我現在不需要了。那么我們每次執行request的時候都把上一個operation cancel掉,然后在completion  Block中判斷operation是否cancel,如果cancel那么不返回response的值。
 
 1 + (AFHTTPRequestOperation *)requestSellerWithCompletion:(requestFinishedCompletionBlock)successBlock 2 { 3     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 4  5     AFHTTPRequestOperation * operation = [manager GET:kRequestSellerURL parameters:nil success:^(AFHTTPRequestOperation *operation, id responSEObject) { 6   7         if (operation.isCancelled) { 8          //若果operation已經被cancel了,則不對返回數據進行處理 9             NSLog(@"operation is Canceled");10         }else{11      //如果沒有cancel 掉,則進行正常的數據解析12             NSArray *sellerArray = [MTLJSONAdapter modelsOfClass:[Seller class] fromJSONArray:responseObject[@"data"] error:nil];13             if (successBlock) {14               //  NSLog(@"current operation count is %d",[manager.operationQueue operations].count);15                 successBlock(sellerArray);16             }17         }18 19 20     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {21 22     }];

 

 
 
 
然后在for循環里這么做.for (int i = 1; i <= 10; i++) {        if (operation) {            [operation cancel];        }      operation = [Seller requestSellerWithCompletion:^(id object) {            NSLog(@"finished download %d",i);        }];    }

 

 

運行一下看看console .

 
 
看到葉孤城的一篇文章,現在自己總結如上
 
 
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 甘孜| 滨州市| 孝昌县| 嘉义县| 阜阳市| 宣化县| 光泽县| 荔浦县| 揭阳市| 高密市| 东海县| 邢台市| 张家川| 北海市| 临夏市| 阳新县| 永昌县| 怀仁县| 唐河县| 铜川市| 行唐县| 全南县| 崇义县| 河南省| 金溪县| 灌云县| 鹤岗市| 海盐县| 岳西县| 宜黄县| 化隆| 天门市| 长汀县| 巴南区| 合水县| 开封县| 余干县| 木兰县| 和龙市| 罗田县| 上栗县|