0
我想将下面的代码翻译成Swift 3.我觉得其他海报已经回答了这个问题,但我似乎无法弄清楚。Swift 3迭代类数组
- (BOOL)allowTouchForSubview:(UIView *)subview {
NSArray *classes = @[[UITextField class], [UISearchBar class], [UITextView class]];
for (Class class in classes) {
if ([subview isKindOfClass:class]) {
return YES;
}
if ([subview.superview isKindOfClass:class]) {
return YES;
}
};
return NO;
}
这是我到目前为止有:
func allowTouchForSubview(subview: UIView) -> Bool {
let allowedClasses: [AnyClass] = [UITextField.self, UISearchBar.self, UITextView.self]
for classType in allowedClasses {
if subview is classType {
return true
}
if let superview = subview.superview {
if superview is classType {
return true
}
}
}
return false
}
两个引用它错误classType
并说“使用未声明的类型classType所的”。这里发生了什么?
这似乎工作。任何想法为什么'是'没有工作 - 或者是KindOf真的有什么区别? – Alex
也许它与桥接有关。 .kind(of:_)好像使用动态分派来解析实例的类型。 –