ios委托默认为什么

时间:2012-04-15 00:34:06

标签: objective-c ios cocoa delegates

如果您没有指定委托,self是默认委托吗?

另外,如果你有一个UITextField,你需要确保它知道它是UITextFieldDelegate还是默认为一个?

1 个答案:

答案 0 :(得分:2)

  

如果您未指定委托,

什么对象?由具体对象的实现决定。

  

是自定义默认委托吗?

不,在没有任何其他信息的情况下,代表可能是零。

但是,如果您正在编写类实现,并希望该对象默认将其委托设置为self,那么您当然可以这样做。不过,我认为这通常会让人感到困惑而不是有用。

如果您想默认执行某些操作,只需检查代理是否为零。 (有人总是可以将你的代表设置为零,所以无论如何你必须做那个检查。)

  

如果您有UITextField,您需要确保它知道它是UITextFieldDelegate还是默认为一个?

UITextField没有实现UITextFieldDelegate中的任何方法 - 或者至少它没有宣传它是这样做的 - 所以我不确定你的意思。 UITextField本身不能用作UITextFieldDelegate

如果你是UITextField的子类并在UITextFieldDelegate协议中添加方法,那么你可以将其标记为实现UITextFieldDelegate

@interface MyTextField : UITextField <UITextFieldDelegate>

但是默认情况下不会发生这种情况,你必须要实现它。