`
buliedian
  • 浏览: 1243233 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

[常见问题]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;

}

分享到:
评论

相关推荐

    NSURLConnection类写的webservice调用类

    在iOS应用中,特别是涉及到与Web服务交互时,NSURLConnection扮演着核心角色。本篇文章将深入探讨如何使用NSURLConnection来实现webservice的调用,并介绍相关的知识点。 首先,我们要理解什么是Web Service。Web ...

    NSURLConnection

    在Android环境中,虽然不直接使用NSURLConnection,但这个概念可以帮助理解网络通信的基础知识,特别是当我们考虑跨平台开发时。 首先,远程摄像头监控程序通常涉及通过网络传输视频流或静态图像。在iOS和Android...

    iOS 断点续传(NSURLConnection简易封装)

    2. **初始化`NSURLConnection`**:使用`NSURLConnection`的`initWithRequest:delegate:startImmediately:`方法初始化连接,传入请求对象和代理对象。 3. **代理方法**: - `connection:didReceiveResponse:`:在这...

    通过 NSURLConnection 进行异步下载

    通过 NSURLConnection 进行异步下载是iOS应用开发中常用的一种技术,特别是在处理网络请求时。NSURLConnection 是苹果提供的一个类,它允许应用程序与互联网上的资源进行交互,包括发送HTTP请求和接收响应。异步下载...

    URLConnection实现图片下载

    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; ``` 3. **遵循NSURLConnectionDataDelegate协议**: - `connection:didReceiveResponse:`:此方法在接收到...

    使用NSURLConnection实现单点下载

    通过调用NSURLConnection的start方法,我们可以发起一个请求,并在接收到服务器响应时回调我们预先设置的代理方法。这种异步特性使得应用可以在等待数据返回的同时执行其他任务,提高用户体验。 为了实现单点下载,...

    Phone 网络开发之如何使用NSURLConnection

    NSURLConnection IPhone 网络开发之如何使用

    将类似NSURLConnection的同步任务引入NSURLSession

    NSURLConnection是一个基于 delegate 模式的类,它在主线程上阻塞执行同步请求,这可能导致UI无响应,用户体验下降。而NSURLSession,尤其是它的异步数据任务,可以在后台线程运行,不会阻塞用户界面,提供更好的...

    ios调用webservice实例代码

    (1)写一个调用webservice的类webservice(代码中有两个,一个是使用NSURLConnection写的类,还有一个是ASIHttpRequest写的webservice调用类) a.同步调用 b.异步调用 c.返回数据的处理 soap调用返回的数据经常放在...

    NSURLConnection使用demo

    对于处理中文字符,NSURLConnection可能会遇到编码问题。默认情况下,它可能无法正确处理非ASCII字符,特别是中文。我们需要确保请求的URL字符串已经正确地转换为UTF-8编码,例如使用`NSString`的`...

    iOS基础——网络请求之NSURLConnection、NSURLSessionDataTask

    在iOS开发中,网络请求是应用与服务器交互的重要方式,主要涉及两个主要的API:NSURLConnection和NSURLSessionDataTask。这两个类都是Apple的Foundation框架提供,用于处理HTTP和其他Web服务的通信。接下来,我们将...

    封装网络请求类--AFNetworking、NSURLConnection

    let connection = NSURLConnection(request: request, delegate: self, startImmediately: false) connection?.start() } // 实现NSURLConnectionDataDelegate和NSURLConnectionDelegate的方法... } ``` 然而...

    How to use TouchJSON in your iPhone apps.pdf

    3. 注意,目前iPhone并不提供一个很好的方式来包含框架,因此,将必要的源代码文件直接添加到项目中是一种常见的做法。 ### 如何获取JSON数据? 获取JSON数据最常见的方式是从Web服务REST API中下载。简单来说,你...

    swift-基于NSURLConnectionNSURLSessionAFNetworking方式实现文件下载功能

    在iOS开发中,文件下载是常见的任务之一,Swift提供了多种方式来实现这一功能。本教程将探讨使用`NSURLConnection`、`NSURLSession`以及第三方库`AFNetworking`在Swift中进行文件下载的方法。这些方法各有优劣,适用...

    iPhone常见面试题

    ### iPhone软件开发面试知识点解析 #### 1. Objective-C中的数字对象及其与基本数据类型的区别 Objective-C中,数字对象主要包括`NSNumber`类,它可以表示任何数值类型,包括整型、浮点型等。与基本数据类型(如...

    iOS中使用NSURLConnection处理HTTP同步与异步请求

    NSURLConnection相关方法被完全的弃用,iOS系统有向下兼容的特性,尽管NSURLConnection已经被弃用,但在开发中,其方法依然可以被使用,并且如果需要兼容到很低版本的iOS系统,有时就必须使用NSURLConnection类了。...

    《iphone3开发基础教程》PDF版本下载.txt

    考虑到iPhone3是指的是较早期的iPhone型号(如iPhone 3G或iPhone 3GS),这本教程可能主要面向的是iOS 3或更早版本的操作系统。因此,在学习时需要注意这些基础知识在现代iOS版本中的适用性。 #### 1.2 描述解读 ...

    iPhone 开发例子2

    在本主题"iPhone 开发例子2"中,我们将深入探讨iPhone应用开发的相关知识,这个压缩包文件包含了2008年11月19日的示例代码,旨在为正在学习iPhone开发的初学者提供实践指导。以下是这些示例可能涵盖的一些关键知识点...

    Iphone接口详细说明

    《iPhone Human Interface Guidelines for Web Applications》不仅是iPhone开发者不可或缺的技术参考,更是深入理解苹果设计理念与标准的重要资源。通过遵循文档中的指导,开发者可以创建出既符合苹果设计哲学又具有...

Global site tag (gtag.js) - Google Analytics