按名称

时间:2017-10-14 00:15:46

标签: swift reflection metatype

我正在尝试使用类型标识作为字典中的键,但是我在编写声明时遇到了麻烦。在C#中,我会使用这样的东西:

Type theType = typeof(MyCoolClass);

似乎在Swift中我想使用type(of:) - 根据文档,此函数返回一个Metaclass对象,但当我尝试使用此类型时,我得到:

  

未找到类型元数据

protocol DependencyResolver {
     func getObject<T>(type: Metatype, contract: String?) -> T?
     func getAllObjects<T>(type: Metatype, contract: String?) -> T?
}

1 个答案:

答案 0 :(得分:0)

Metatype实际上是type(of:)函数的泛型参数(即,不是名义类型)。返回的动态类型是具体元类型(T.Type)。

例如,尝试使用Any.Type代替;)