Swift-> ObjC方法能否返回“ __kindof”样式的协变量值?

时间:2018-07-16 18:55:36

标签: objective-c swift

我正在尝试向UIView添加扩展方法,以帮助找到特定类的最接近的祖先。在Objective-C中,我会这样声明

- (nullable __kindof UIView *)superviewOfClass:(Class)targetClass

在纯Swift中,我可以这样声明

func superview<T: UIView>(ofClass targetClass: T.Type) -> T?

但是当制作一个可以从ObjC调用的Swift方法时,我还没有找到一种方法来解决这个问题。我在这里

@objc func superview(ofClass targetClass: UIView.Type) -> UIView?

但是从ObjC调用时收到编译器警告:

UITableViewCell *cell = [myView superviewOfClass:[UITableViewCell class]];

incompatible pointer types initializing 'UITableViewCell *' with an expression
of type 'UIView * _Nullable'

Swift为此目的支持像Objective-C的__kindof关键字吗?

0 个答案:

没有答案