-2

每当我以编程方式创建 UI 对象UITextField时,我都会这样做:

txt.delegate = self;

出现编译器警告并要求我添加UITextFieldDelegate.h 文件。

我注意到,不管有没有,代码都可以正常工作。

但是编译器警告消失了。为什么是这样?

4

1 回答 1

2

delegate除非您实际使用委托方法,否则您实际上不需要设置对象的属性。例如,如果您需要知道何时UITextField开始编辑。如果您不需要知道这些事情何时发生,则无需设置委托。

换个角度看,如果你让你的类符合委托方法(通过<SomeClassDelegate>.h文件中添加),然后忘记实现所需的委托方法,你会收到编译器的警告,当应用程序崩溃时运行(并向您的对象发送所需的委托消息)。

要回答关于不添加UITextFieldDelegate.h文件的问题,假设您的朋友正在寻找法语翻译。你找到一个长相外国的男人并介绍他。你的朋友问“但是他会说法语吗?” 你回答“我不知道”。这是你的警告。

于 2013-02-10T15:29:52.980 回答