假设我正在创建一个名为UITextView的子类,例如myTextView。我将使该课程成为自己的代表。所以,我需要实现像
这样的委托方法- (void)textViewDidBeginEditing:(UITextView *)textView {
我应该像这样声明这个方法吗?
- (void)textViewDidBeginEditing:(myTextView *)textView {
在我看来它像递归,因为我在myTextView类中,定义了一个自己引用的委托...
什么是正确的方法?感谢。
答案 0 :(得分:4)
只是为了澄清,最好是实现协议中定义的方法:
- (void)textViewDidBeginEditing:(UITextView *)textView
如果使用自定义类类型或任何类类型实现协议方法,则仍会调用这些方法,因为没有执行类型检查。该参数实际上是您的自定义子类。无论如何,再次澄清一下,如果你想处理自定义子类的ivars,我建议你进行内部演员:
- (void)textViewDidBeginEditing:(UITextView *)textView {
MyTextView * myTextView = (MyTextView *)textView;
...
}