【发布时间】:2017-10-23 07:52:20
【问题描述】:
我有一个类Superclass,泛型类型为UIView。 Subclass 类继承自 Superclass:
class Superclass<T: UIView>: UIViewController { ... }
class Subclass: Superclass<UIButton> { ... }
现在,我正在尝试从另一个 UIViewController 初始化一个 Subclass 类型的对象,如下所示:
let childViewController: Superclass<UIView>?
switch type {
case .typeOne:
childViewController = Subclass()
default:
childViewController = nil
}
但是正在抛出以下错误:
Cannot assign value of type 'Subclass' to type 'Superclass<UIView>?'
例如,我如何指定我想用UIButton 类型初始化childViewController?
谢谢!
【问题讨论】:
-
见this。
-
@OrkhanAlikhanov 我无法让它工作......
-
尽管
UIButton是UIView的子类型,Superclass<UIButton>不是Superclass<UIView>的子类型。
标签: ios swift generics inheritance