【发布时间】:2018-05-25 19:54:31
【问题描述】:
我正在使用以下通用方法返回子类
class SomeClass {
var childInstance: ParentClass?
func getClass<T: ParentClass>() -> T? {
return childInstance as? T
}
func usage() {
if let view: ChildTwo = self.getClass() {
view.someMethodOfClassTwo()
}
}
}
是否可以将类作为泛型类型参数传递?所以用法将是没有 if 语句,像这样:
self.getClass(type: ChildTwo)?.someMethodOfClassTwo()
上面用到的父/子类如下:
class ParentClass { }
class ChildOne: ParentClass {
func someMethodOfClassOne() { }
}
class ChildTwo: ParentClass {
func someMethodOfClassTwo() { }
}
更新:ParentClass 是一个类,由于某种原因,我无法使用协议或将其更改为协议。
【问题讨论】: