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
iOS开发--用户点击频繁,多个异步网络请求取消问题?的更多相关文章
- IOS开发之—— 在AFN基础上进行的网络请求的封装
网络请求的思路:如果请求成功的话AFN的responseObject就是解析好的. 1发送网络请求:get/post/或者别的 带上URL,需要传的参数 2判断后台网络状态码有没有请求成功: 3 请求 ...
- IOS开发之记录用户登陆状态,ios开发用户登陆
IOS开发之记录用户登陆状态,ios开发用户登陆 上一篇博客中提到了用CoreData来进行数据的持久化,CoreData的配置和使用步骤还是挺复杂的.但熟悉CoreData的使用流程后,CoreDa ...
- 用户登陆状态,ios开发用户登陆
IOS开发之记录用户登陆状态,ios开发用户登陆 上一篇博客中提到了用CoreData来进行数据的持久 化,CoreData的配置和使用步骤还是挺复杂的.但熟悉CoreData的使用流程后,CoreD ...
- 李洪强iOS开发之- 点击屏幕遮挡键盘
李洪强iOS开发之- 点击屏幕遮挡键盘 实现的效果: 01 - 给当前的view添加点击事件,使点击屏幕的时候,让键盘退出 /** * 点击屏幕 隐藏键盘 * * @param tap */-(vo ...
- iOS 多个异步网络请求全部返回后再执行具体逻辑的方法
对于dispatch多个异步操作后的同步方法,以前只看过dispatch_group_async,看看这个方法的说明: * @discussion * Submits a block to a dis ...
- iOS开发:UITableView的优化技巧-异步绘制Cell
最近在微博上看到一个很好的开源项目VVeboTableViewDemo,是关于如何优化UITableView的.加上正好最近也在优化项目中的类似朋友圈功能这块,思考了很多关于UITableView的优 ...
- iOS开发——post异步网络请求封装
IOS中有许多网络请求的函数,同步的,异步的,通过delegate异步回调的. 在做一个项目的时候,上网看了很多别人的例子,发现都没有一个简单的,方便的异步请求的封装例子.我这里要给出的封装代码,是异 ...
- IOS开发中--点击imageView上的Button没有任何反应
点击imageView上的Button没有任何反应: 解决方法:设置图片的userInteractionEnabled为YES,使该imageView可以与用户进行交互
- ios开发图片点击放大
图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现 创建了一个专门用于放大图片的类,以下为.h文件 #import <Foundation/Foundation. ...
随机推荐
- [美团 CodeM 初赛 Round A]最长树链
题目大意: 给你一棵带点权的树,找出一个最长的树链满足链上点权的最大公因数不为1. 思路: 暴力DP. 对于每个点,记录一下以这个点为一个端点的所有链的最大公因数及长度. 然后暴力转移一下,时间复杂度 ...
- scrapy初探
一 创建scrapy项目 运行命令: scrapy startproject 项目名称 目录结构 二 定义Item容器 Item是保存爬取到数据的容器,其使用方法和python字典类似,并且提供了 ...
- 魅族 -- 禁止D及以下级别LOG的输出
真机调试时:Log.d()打印不出信息,模拟器可以. 使用的手机:魅族. 状况:禁止D及以下级别LOG的输出. PS.Log.d("h_bl", "进入执行") ...
- 如何订阅Linux相关的邮件列表
转:http://blog.163.com/sunshine_linting/blog/static/44893323201282114012845/ 1.google"linux kern ...
- 【docker】查看docker容器或镜像的详细信息命令,查看docker中正在运行的容器的挂载位置
命令: docker inspect f257d69e0035 格式: docker inspect 容积或镜像ID 首先,docker ps获取简要信息 然后输入命令docker inspect ...
- 利用LogParser分析IIS日志
LogParser是微软官方出品的用于读取分析IIS日志的工具,使用类SQL语句过滤文本日志内容,并可将内容导出到csv.sqlserver作进一步分析 下载地址:http://www.micr ...
- [web] Get和Post区别,EncType提交数据的格式详解
转载自:http://www.cnblogs.com/sunxucool/archive/2012/12/11/2813113.html 1. get是从服务器上获取数据,post是向服务器传送数据. ...
- VS2010中使用命令行參数
在Linux下编程习惯了使用命令行參数,故使用VS2010时也尝试了一下. 新建项目,c++编敲代码例如以下: #include<iostream> #include<fstream ...
- 利用CMD查看系统硬件信息
利用CMD查看系统硬件信息对于在windows下查看系统信息大家一定不陌生了,我现在说几个最常用的方法,对命令感兴趣的朋友看看,(给菜鸟看的,老手就不要笑话我了,大家都是从那个时候过来的,^_^).一 ...
- JavaScript破解验证码
现在,Megaupload站点提供的CAPTCHA在上述代码面前已经败下阵来,说实话,这里的验证码设计的不不太好.但更有趣的是: 1.HTML 5中的Canvas应用程序接口getImageData可 ...