NSURLConnection的文档中提到了像以下这样的代理方法:
connection:willSendRequest:redirectResponse:
但是文档没有提到要实现哪个委托协议。我猜想可能没有任何委托协议,所以一切都是可选的吧?
connection:willSendRequest:redirectResponse:
但是文档没有提到要实现哪个委托协议。我猜想可能没有任何委托协议,所以一切都是可选的吧?
这是一个在NSObject上作为类别实现的非正式协议,它定义了NSURLConnection.h中的方法:
@interface NSObject (NSURLConnectionDelegate)
这意味着任何 NSObject 的子类都可以成为 NSURLConnection 的委托对象。是的,所有委托方法都是可选的。
虽然可能出于完整性的考虑应该有一个,但实际上并没有。Objective-C使用一种称为鸭子类型的概念,这基本上意味着如果对象上有一个方法,即使它不是协议或头文件定义的一部分,仍然可以向其发送消息。