2009-07-15 38 views
1

我经历了这个教程Your First iPhone Application,它工作得很好。我的问题是关于教程中的行如下:UIVewController的UITextFieldDelegate协议

视图控制器也将是文本字段的委托;因此,它必须采用UITextFieldDelegate协议。要指定某个类采用协议,请在该接口中将该协议的名称添加到尖括号(<>)中,类名继承您的类。

如果我从视图控制器中删除该协议,该方法仍被调用(收到消息)并且键盘被解除。我注意到UITextFieldDelegate协议的所有方法都是可选的。如果是这样的话,为什么要声明视图控制器遵守协议?我错过了什么? :-)

回答

5

因为程序员喜欢把事情组织起来。即使协议的所有方法都是可选的,但如果它将用作委托,那么正式声明您的类实现了该协议仍然是一种很好的形式。委托类还可能要求您的类实现协议 - 这意味着如果您实现方法但不声明您实现协议,则会收到编译警告。

+0

是否有编译器开关或指令,让我看到的情况下,我已经将UITextField与View Controller链接,但尚未声明View Control遵循UITextFieldDelegate协议? – 2009-07-15 18:15:31