我想这样做:UIView <UITextFieldDelegate>*
迅速。
使对象成为UIView的子类也符合UITextFieldDelegate
协议。
最佳答案
您可以使用Protocol Composition表达(id <UITextFieldDelegate, UIScrollViewDelegate>)
但不是(UIView<UITextFieldDelegate> *)
。除了类定义。
// Obj-C
- (void)methodName:(id <UITextFieldDelegate, UIScrollViewDelegate>)arg { ... }
// Swift
func methodName(arg:protocol<UITextFieldDelegate, UIScrollViewDelegate>!) { ... }
实际上,一个声明为
- (void)methodName((UIView<UITextFieldDelegate> *))arg;
的Obj-C方法在桥接到Swift时,可以使用任何UIView
实例进行调用。编辑:
经过一番研究,看来您可以像这样声明
func
func myFunc<T:UIView where T:UITextFieldDelegate>(view:T) { ... }