我现在用AFNetworking来做异步请求,在success:^(NSURLSessionDataTask * _Nonnull task,id _Nullable responseObject)里接收放回的数据。
现在有一个问题,某个页面有几个按钮,每个按钮会触发一个网络请求。如果网络不好,用户点击了多个按钮,就会触发多个网络请求,当第一个网络请求还没完成时第二个网络请求被触发,这时接收到的返回数据是最后的一个请求的,前面的不见了。有没有人遇见过这种情况?该怎么处理。请高手指点。
PHP中文网2017-04-18 09:43:11
如果你直接使用的是下面版本的 post 方法,那么,每个请求都是单独的,不会有“前面的不见了”的情况。
- (NSURLSessionDataTask *)POST:(NSString *)URLString
parameters:(id)parameters
success:(void (^)(NSURLSessionDataTask *task, id responseObject))success
failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure
{
return [self POST:URLString parameters:parameters progress:nil success:success failure:failure];
}
你是否有相关的 cancel 调用?