是否可以扩展这样的协议?

时间:2010-09-27 11:25:11

标签: iphone objective-c delegates protocols

我需要为自定义UITextField子类的委托协议添加一些方法。所以我把它放在标题中:

@protocol MyTextFieldDelegate (UITextFieldDelegate)
- (void)textfieldDidSomething:(UITextField*)textField;
@end

这样可以吗?

2 个答案:

答案 0 :(得分:3)

原则上我觉得它很好看。我要做的唯一一点就是写下:

@protocol MyTextFieldDelegate (MyTextFieldDelegateExtras)
- (void)textfieldDidSomething:(UITextField*)textField;
@end

将其与UITextFieldDelegate协议中定义的方法区分开来。

但实际上,如果您想扩展协议,请使用:

@protocol MyTextFieldDelegate <UITextFieldDelegate>
- (void)textfieldDidSomething:(UITextField*)textField;
@end

答案 1 :(得分:1)

当添加其建议的类别时,将其添加为具有MyTextFieldDelegate和MyTextFieldDelegateExtras.h的命名约定的单独文件