singro / v2ex

An iOS client for v2ex.com
MIT License
1.97k stars 453 forks source link

V2DataManager中如何取消先前的请求 #18

Open zltqzj opened 9 years ago

zltqzj commented 9 years ago

V2DataManager中,我想某一个网络请求进行之前,先取消之前的这个请求。类似第二次点击查询按钮,第二次点击的时候,把第一次的同样请求先取消掉~请问该如何做? 谢谢。

SeanChense commented 9 years ago

得维持一个队列吧,比如对 /user/login 有正在进行的操作,再来一个 /user/login 的请求就丢掉一个。

singro commented 9 years ago

V2DataManager 里的接口都是返回 NSURLSessionDataTask, 只要在 VC 里持有它就可以 cancel, 同一个界面再次调用同样接口时 cancel 之前的再发起新的请求就可以。另外,也可以如 @SeanChense 所说,维持一个队列, AFHTTPSessionManager 里就有,可以加入判断来在这一层处理重复请求。