当前位置: 首页 > news >正文

[常见问题]iPhone NSURLConnection delegate methods得不到调用

当你使用NSURLConnection异步模式时,比如代码如下:

NSString *url = [NSString stringWithFormat:@"http://google.cn/...",...];

url = [urlstringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];

connection= [[NSURLConnection alloc] initWithRequest:requestdelegate:self];

并实现了NSURLConnection的代理方法:

#pragma mark NSURLConnection delegate methods

// The following are delegate methods for NSURLConnection.

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {

}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {

}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {

}

但是你发现代码方法永远执行不到。

原因一般是因为这些方法是在一个单独线程中执行,需要一段时间来处理网络数据。

而在此之前你可能在别处退出了该线程。

为了避免这种情况,通常你可以在发送URL请求后,等待数据处理完成再做下一步的事情,这样就可以和主线程或其它线程同步:

while(!finished) {

[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];

}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {

finished = TRUE;

}

相关文章:

  • 内容管理系统(CMS)
  • 钱学森最后一次系统谈话:大学要有创新精神
  • 《程序员羊皮卷》走进Tech•Ed2009
  • 《程序员羊皮卷》走进Tech?Ed2009
  • Mondrian系列(三)-如何设计Mondrian的Schema(1)
  • 三大运营商的应用商店之路
  • OpenSSL介绍
  • 在Windows下编译OpenSSL(VS2005)【转】
  • 柏林墙倒塌20年纪念
  • 关于安装IBM的TDS的错误“error opening toollibs.cat”解决方法
  • 标记:博客访问量突破20万
  • iPhone开发指南-内存管理
  • 《火炬之光》中的“X射线”效果
  • 中缀和后缀算术表达式的分析比较
  • 清理windows资源管理器右键打开方式,新建菜单
  • JavaScript-如何实现克隆(clone)函数
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 0基础学习移动端适配
  • ESLint简单操作
  • go append函数以及写入
  • Hexo+码云+git快速搭建免费的静态Blog
  • javascript面向对象之创建对象
  • Linux Process Manage
  • Mysql数据库的条件查询语句
  • Python实现BT种子转化为磁力链接【实战】
  • Redis中的lru算法实现
  • scrapy学习之路4(itemloder的使用)
  • Selenium实战教程系列(二)---元素定位
  • tensorflow学习笔记3——MNIST应用篇
  • v-if和v-for连用出现的问题
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 动态魔术使用DBMS_SQL
  • 仿天猫超市收藏抛物线动画工具库
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 入口文件开始,分析Vue源码实现
  • 使用 QuickBI 搭建酷炫可视化分析
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 异常机制详解
  • 用Visual Studio开发以太坊智能合约
  • 从如何停掉 Promise 链说起
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​插件化DPI在商用WIFI中的价值
  • #pragma 指令
  • #stm32驱动外设模块总结w5500模块
  • #微信小程序:微信小程序常见的配置传值
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (译)2019年前端性能优化清单 — 下篇
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)利用ant在Mac 下自动化打包签名Android程序