如果不指定委托(delegate),self
是默认委托(delegate)吗?
此外,如果您有一个 UITextField
,您是否需要确保它知道它是一个 UITextFieldDelegate
还是默认情况下是一个?
最佳答案
If you don't specify a delegate,
什么对象?由具体对象的实现来决定。
is the self the default delegate?
不,在没有任何其他信息的情况下,委托(delegate)可能为零。
但是,如果您正在编写一个类实现,并希望该对象默认将其委托(delegate)设置为 self
,您当然可以这样做。不过,我认为这通常会让人感到困惑而不是有用。
如果你想默认做某事,只需检查委托(delegate)是否为 nil。 (有人总是可以将您的委托(delegate)设置为 nil,因此无论如何您都必须进行该检查。)
If you have a UITextField do you need to make sure it knows it is a UITextFieldDelegate or is it one by default?
UITextField
没有实现 UITextFieldDelegate
中的任何方法——或者至少它没有宣传它这样做——所以我不确定是什么你是说这里UITextField
本身不能用作 UITextFieldDelegate
。
如果您要继承 UITextField
并在 UITextFieldDelegate
协议(protocol)中添加方法,那么您可以将其标记为实现 UITextFieldDelegate
:
@interface MyTextField : UITextField <UITextFieldDelegate>
但这不会默认发生,您必须让它发生。
关于objective-c - ios 委托(delegate)默认为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10158597/