NSURLConnection didFailWithError connectionDidFinishLoad同时调用



关于"didFailWithError"和"connectionDidFinishLoading"

他们都可以叫吗?还是总是非此即彼?

不可以,不能同时调用它们。

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

如果连接成功下载请求,则代理会收到connectionDidFinishLoading:消息。委托将不会收到有关连接的进一步消息,并且可以释放NSURLConnection对象。

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

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

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

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

连接完成加载:

在连接成功完成加载时发送。

成功。似乎总是一个或另一个。

最新更新