NSURLConnection didFailWithError connectionDidFinishLoading同时被调用?

时间:2012-10-14 21:35:31

标签: iphone ios nsurlconnection nsurlconnectiondelegate

关于“didFailWithError”和“connectionDidFinishLoading

他们都可以被召唤吗?或者它总是一个或另一个?

3 个答案:

答案 0 :(得分:6)

不,他们不能同时被召唤。

委托收到消息connection:didFailWithError:后,它不会再收到指定连接的委托消息。

如果连接成功下载请求,则代理会收到connectionDidFinishLoading:消息。代理将不再收到连接消息,并且可以释放NSURLConnection对象。

http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html

答案 1 :(得分:3)

虽然不明显,但文档声明只会调用这两个中的一个。它要么成功完成并且调用 connectionDidFinishLoading ,要么失败并显示错误并且调用 didFailWithError 。您可以在 NSURLConnectionDataDelegate文档中找到**连接:willSendRequest:redirectResponse:方法。

编辑:看起来@erkanyildiz的回答显示了来自文档的更好信息。

答案 2 :(得分:1)

来自文档https://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSURLConnectionDelegate_Protocol/Reference/Reference.html

connectionDidFinishLoading:

  

连接成功加载后发送。

<强>成功即可。似乎总是一个或另一个。