1

我对指定代表的类有疑问。

有时委托对象需要实现协议,有时不需要。例如,如果你想显示一个UIAlertView,你创建它并指定一个delegate相似的自我。然后,调用 的类UIAlertView必须实现UIAlertViewDelegate协议。

NSUrlConnection如果您创建与消息类似的其他类,则connectionWithRequest:delegate:指定一个委托,它将NSUrlConnection在连接进行时接收发送的委托消息,但指定为委托的对象不必实现协议。

我错过了什么吗?我如何理解何时应该实施协议?从 API 参考中是否总是清楚的UIAlertViewDelegate

我注意到UIAlertViewreference 仅提供实例方法并告诉您必须实现UIAlertViewDelegate协议,而NSUrlConnection没有谈论要实现的协议,但它有一个委托方法部分。

可以NSUrlConnectionUIAlertView类一样定义,没有委托方法但有一个NSUrlConnectionDelegate协议。

还是我错过了重点?在我看来,出于相似目的有两种不同的方式,但也许我错了。我希望我已经很清楚了,我只是想完全理解这些东西背后的基本原理。

4

1 回答 1

0

NSURLConnection 本身实现了委托方法,为这些事件提供了一些默认行为。

默认情况下,UIAlertView 根本不处理这些事件。并允许您委托委托来自定义处理。

区别在于是否需要默认行为。

于 2011-09-03T09:07:12.943 回答