Swift - 获得泛型类的

时间:2014-10-06 07:34:29

标签: generics swift

我有非常基本的模型,比如

class Model {

}

class User : Model {

} 

class Group : Model {

}

现在我需要检查泛型类型以了解哪个类作为参数发送

func getRepository<ModelType: Model>() {
   if (typeof(ModelType) == User.self) {
       // Do something specific to User
   } else {
       .....
   }
}

但我无法弄清楚如何获得一般类型的类别。

非常感谢您的回答。

干杯

1 个答案:

答案 0 :(得分:0)

这个https://gist.github.com/MartinJNash/e2bb27937711f350aa44怎么样?我不确定它是否有效,但想法是在字符串中获取类名,然后比较它们:

class Model {
    class func classString() -> String {
        return NSStringFromClass(self)
    }
}


func getRepository<ModelType: Model>() {
   if (ModelType.classString() == User.classString()) {
       // ...
   }
}