NSURLConnection协议在哪里?

4
NSURLConnection的文档中提到了像以下这样的代理方法:
connection:willSendRequest:redirectResponse: 

但是文档没有提到要实现哪个委托协议。我猜想可能没有任何委托协议,所以一切都是可选的吧?

2个回答

13

这是一个在NSObject上作为类别实现的非正式协议,它定义了NSURLConnection.h中的方法:

@interface NSObject (NSURLConnectionDelegate)

这意味着任何 NSObject 的子类都可以成为 NSURLConnection 的委托对象。是的,所有委托方法都是可选的。


5
对于未来阅读本答案的人:NSURLConnectionDelegate 是从 Mac OS X 10.7 (Lion) 开始成为正式协议的。 - jtbandes

0

虽然可能出于完整性的考虑应该有一个,但实际上并没有。Objective-C使用一种称为鸭子类型的概念,这基本上意味着如果对象上有一个方法,即使它不是协议或头文件定义的一部分,仍然可以向其发送消息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接