【发布时间】:2017-09-05 19:54:07
【问题描述】:
代码如下,在OC中使用[touch.view class]获取对象类型,在Swift 3中如何获取。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
return NO;
} else {
return YES;
}
}
【问题讨论】:
-
type(of: yourObject) 使用这个
-
在这种情况下,您将使用
is或as?,如这些答案stackoverflow.com/a/26384597/1187415、stackoverflow.com/a/30304590/1187415 的副本。 -
首先,您不应该使用字符串来比较这样的类。在这里查看我的答案:stackoverflow.com/a/40388434/3141234
-
每个人都过于复杂了。您只需要
return !(touch.view is UITableViewCellContentView)