我编写了Swift代码,试图从给定自定义UIView类型的所有子视图中删除所有手势识别器.
let mySubviews = self.subviews.filter() {
$0.isKindOfClass(CustomSubview)
}
for subview in mySubviews {
for recognizer in subview.gestureRecognizers {
subview.removeGestureRecognizer(recognizer)
}
}
Run Code Online (Sandbox Code Playgroud)
但该for recognizer行会产生编译错误:
'[AnyObject]?' does not have a member named 'Generator'
Run Code Online (Sandbox Code Playgroud)
我已经尝试将for recognizer循环更改为for recognizer in enumerate(subview.gestureRecognizers),但这会产生编译器错误:
Type '[AnyObject]?!' Does not conform to protocol 'SequenceType'
Run Code Online (Sandbox Code Playgroud)
我看到UIView的gestureRecognizers方法返回了[AnyObject]??,我认为双重包裹的返回值正在绊倒我.谁能帮我?
更新:修改,编译代码是:
if let recognizers = subview.gestureRecognizers {
for recognizer in recognizers! {
subview.removeGestureRecognizer(recognizer as UIGestureRecognizer)
}
}
Run Code Online (Sandbox Code Playgroud)