相关疑难解决方法(0)

在Swift中实例化泛型类型的对象

我正在FooSwift中实现一个类,它应该实例化给定子的对象SuperBar,例如Bar: SuperBar.我非常喜欢Swift中的泛型,所以我试着用这种方式实现它:

class Foo<T: SuperBar> {

    func instantiateObject() -> T {
        return T()
    }

}

class SuperBar {

}

class Bar: SuperBar {

}

let foo = Foo<Bar>()

let obj = foo.instantiateObject()
Run Code Online (Sandbox Code Playgroud)

您可以在Xcode Playground中运行代码片段并观察它obj是类型SuperBar而不是Bar,虽然它说Bar我在Alt单击常量名称时.

有任何想法吗?:)

generics swift

13
推荐指数
2
解决办法
9960
查看次数

标签 统计

generics ×1

swift ×1