首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSURLConnection:didReceiveResponse:除了didFailWithError之外还调用:

NSURLConnection:didReceiveResponse:除了didFailWithError之外还调用:
EN

Stack Overflow用户
提问于 2012-08-23 05:31:48
回答 1查看 1.4K关注 0票数 1

我注意到,如果存在连接问题,那么除了didFailWithError:(使用HTTP400)之外,还会调用didReceiveResponse:。

这不是我所期望的,这使得处理错误情况变得棘手--特别是因为我还注意到了didReceiveResponse:是在didFailWithError之前调用的东西吗:有时在它之后调用。

我不敢相信这是有意为之的行为,因此我想知道我的代码是否存在某种问题,但如果有问题,我无法想象是如何发生的。

有没有人能确认NSURLConnection的行为应该是什么,或者他们以前是否见过这样的行为?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-23 06:06:15

我很确定这是按照预期工作的。-connectionDidFinishLoading:connection:didFailWithError:方法是互斥的,但是任何一个方法都可以通过一个调用(或多个调用!)敬connection:didReceiveResponse:

毕竟,在本例中,您确实收到了有效的HTTP响应。它只是碰巧表明您的请求由于该请求的某些问题而无法处理。(而不是,比方说,超时,加载失败,但从来没有响应。)

但是,对于给定的连接,-connectionDidFinishLoading:connection:didFailWithError:中的一个应该始终是您获得的最后一条消息。(如果对多个连接使用单个委托,请确保在看到这些调用顺序混乱时查看的是同一个connection对象。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12081711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档