小编Max*_*axK的帖子

如何在Swift中向泛型类型添加类型方法?

我试图在Swift中向泛型类添加一个类型(aka静态)方法.这是代码.

class StateArchive<T> {
    class func emptyAllArchives() {
        // do something
    }
}

// the compiler emits an error: "Argument for generic parameter 'T' could not be inferred"
StateArchive.emptyAllArchives()
Run Code Online (Sandbox Code Playgroud)

我可以通过提供代替T的类型来编译上面的代码,如下所示:

StateArchive<AnyObject>.emptyAllArchives()

然而,这看起来很尴尬.最初我认为原因可能是人们可以创建一个类型为T的类变量.在操场上进行的快速测试显示编译器会发出一条消息:

"泛型类型尚不支持的类存储属性".

有没有人知道如何在泛型类型中创建一个类型方法,让客户端调用此方法而不提供代替T的类型?

generics ios swift

1
推荐指数
1
解决办法
2544
查看次数

标签 统计

generics ×1

ios ×1

swift ×1