我想我在泛型上遇到了困难。 我想创建一个简单的UIView扩展,以递归方式查找函数参数中传递的类的superview。 我希望该函数返回可选项,显然包含nil或作为提供的类的实例可见的对象。
extension UIView {
func superviewOfClass<T>(ofClass: T.Type) -> T? {
var currentView: UIView? = self
while currentView != nil {
if currentView is T {
break
} else {
currentView = currentView?.superview
}
}
return currentView as? T
}
}
非常感谢您的帮助。