我成功地使用了NSURLConnectionDelegate的相当棒的connection:didReceiveAuthenticationChallenge:
委托方法。凉。
我想正确支持让用户取消身份验证质询。因此,我呈现给用户的 GUI 有一个取消按钮,问题是该按钮后面应该发生什么行为。
目前我做这个[[challenge sender] cancelAuthenticationChallenge:challenge]
我已经实现了NSURLConnectionDelegate方法connection:didCancelAuthenticationChallenge:
。在 Apple 文档中,我注意到这个回调的注释相当模棱两可:
作为 iOS 5.0 之前的非正式协议的一部分提供。
哼?实际触发的回调方法是connection:didFailWithError:
有人可以在这里提供一些信息吗?
作为 iOS 5.0 之前的非正式协议的一部分提供。
这只是意味着所讨论的委托方法不是正式协议的一部分,即使用 @protocol 指令声明的协议。非正式协议中的方法通常与调用它们的类一起记录。
实际触发的回调方法是 connection:didFailWithError:
-connection:didCancelAuthenticationChallenge:
和-connection:didFailWithError:
对成为iOS 5.0之前的非正式协议的一部分有着相同的说明。听起来您的连接无法加载数据,没有被取消。如果您通过以下电话取消挑战,您可能会收到前一条消息:
[[challenge sender] cancelAuthenticationChallenge:challenge];
如取消连接中所述。