iOS开发--用户点击频繁,多个异步网络请求取消问题?

一、业务环境描述

当一个view同时添加两个tableView为subView的时候,两个tableView分别为mainTable和subTable。

当用户点击mainTable上的某一条数据时,再去发送网络请求subTable中的数据。

存在问题的地方:例如当用户在mainTable上频繁点击各条cell上面的数据时,会出现subTable中数据错乱问题。那么如何取消之前的网络请求呢???

注:网络请求为异步请求

二、解决方法 1.实例化一个AFHTTPRequestOperationManager对象

AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] init];

2.调用POST方法,返回一个AFHTTPRequestOperation对象

    AFHTTPRequestOperation *operation = [manager POST:urlStr parameters:param success:^(AFHTTPRequestOperation *operation, id responseObject) {
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    }];

3.判断operation对象是否已经实例化,如果是,就取消这个请求操作;如果否,就重新执行上面第1、2两步。

    if (subTableOperation)// 如果已经有请求了,就直接取消掉。
    {
        [subTableOperation cancel];
    }
    // 请求不存在,重新实例化一个
    subTableOperation = [APITool getSubTableListData:@"test" callBack:^(NSNumber *success, id response) {
        // 处理网络回调数据 和 reloadData
    }];
    [subTableOperation start];

具体代码 : Demo_OperationOfCancel

转自:http://blog.5ibc.net/p/88308.html

时间: 2024-10-12 22:50:52

iOS开发--用户点击频繁,多个异步网络请求取消问题?的相关文章

IOS开发之—— 在AFN基础上进行的网络请求的封装

网络请求的思路:如果请求成功的话AFN的responseObject就是解析好的. 1发送网络请求:get/post/或者别的 带上URL,需要传的参数 2判断后台网络状态码有没有请求成功: 3 请求成功:解析数据,刷新页面 4请求失败做处理 VPKCResponse.h VPKCResponse.m VPKCRequestManager.h VPKCRequestManager.m 定义两个文件继承NSObject. VPKCResponse.h #import <Foundation/Fou

iOS 开发之 点击tabbarItem添加是否跳转登录页面判断

iOS 开发之 点击tabbarItem添加是否跳转登录页面判断 项目里面在点击tabbarItem的时候需要判断是否是登录状态,如果未登录直接跳转登录页面,如果已登录则直接进入. 首先设置UITabBarController的代理为appdelegate如下:myTabBar.delegate = self; 然后在interface后面写上代理<UITabBarControllerDelegate> 实现代理里面的- (BOOL)tabBarController:(UITabBarCont

用户登陆状态,ios开发用户登陆

IOS开发之记录用户登陆状态,ios开发用户登陆 上一篇博客中提到了用CoreData来进行数据的持久 化,CoreData的配置和使用步骤还是挺复杂的.但熟悉CoreData的使用流程后,CoreData还是蛮好用的.今天要说的是如何记录我们用户 的登陆状态.例如微信,QQ等,在用户登陆后,关闭应用在打开就直接登陆了.那么我们在App开发中如何记录用户的登陆状态呢?之前在用PHP或者 Java写B/S结构的东西的时候,我们用Session来存储用户的登陆信息,Session是存在服务器上仅在一

IOS开发之记录用户登陆状态,ios开发用户登陆

IOS开发之记录用户登陆状态,ios开发用户登陆 上一篇博客中提到了用CoreData来进行数据的持久化,CoreData的配置和使用步骤还是挺复杂的.但熟悉CoreData的使用流程后,CoreData还是蛮好用的.今天要说的是如何记录我们用户的登陆状态.例如微信,QQ等,在用户登陆后,关闭应用在打开就直接登陆了.那么我们在App开发中如何记录用户的登陆状态呢?之前在用PHP或者Java写B/S结构的东西的时候,我们用Session来存储用户的登陆信息,Session是存在服务器上仅在一次回话

iOS NSURLConnection和异步网络请求

在日常应用中,我们往往使用AFNetworking等第三方库来实现网络请求部分.这篇文章会简要地介绍一下如何使用NSURLConnection来进行异步的网络请求. 我们先看一个小demo - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSString *urlStr = @"http://www.baidu.c

iOS开发——post异步网络请求封装

IOS中有许多网络请求的函数,同步的,异步的,通过delegate异步回调的. 在做一个项目的时候,上网看了很多别人的例子,发现都没有一个简单的,方便的异步请求的封装例子.我这里要给出的封装代码,是异步的,post的请求方式.通过ios的原生函数简单封装.通过这个封装可以方便的访问http服务器,获取数据,也可以容易的异步加载网络图片. 首先新建一个httpHelper类,在这个类里进行封装,封装的函数名称就叫做post,参数有请求的地址url,请求的参数params,返回数据后回调的函数blo

iOS开发之点击tableViewCell,显示详情

介绍一种在storyboard上拖控件创建segue的方法. // 首先去翻译了下Segue // 来源:https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/UsingSegues.html // 定义:Segue表示storyboard文件中两个ViewController之间的转换(?).通常由A视图控制器的按钮.表格行或手势指向B视图控制器. // 触发:由UIKit实现,

iOS开发-Reachability实时检测Wifi,2G/3G/4G/网络状态

最近遇到一个功能就是根据用户当前的网络状,用户未联网需要提示一下,如果是Wifi可以推荐一些图片新闻,如果是3G模式设置为无图的模式,获取网络状态比较简单,毕竟中国现在的流量还是一个比较贵的状态,哪天用户发现App消耗流量过多说不定就干掉了App.不过苹果的Reachability都解决了以上问题,使用起来也比较方便,具体的稍微简单分析一下. Reachability.h头文件代码: #import <Foundation/Foundation.h> #import <SystemCon

iOS开发之新版本微信授权提示“未知的应用请求”

昨天更新了微信之后突然发现应用微信授权登录提示“未知的应用请求” 代码都没有动,上个版本还可以,更新了微信就出问题了 理论上微信新版本都会兼容老的api啊,后面更新SDK一发现是注册的时候用的方法有问题 之前用的错误方法 [WXApi registerApp:@"微信appid" withDescription:@"应用标识"]; 改为下面的方法就可以了 [WXApi registerApp:@"微信appid"]; 其实微信在早几个版本就建议用