Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Generics Swift-获取泛型类型的类_Generics_Swift - Fatal编程技术网

Generics Swift-获取泛型类型的类

Generics Swift-获取泛型类型的类,generics,swift,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 {

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

class Model {

}

class User : Model {

} 

class Group : Model {

}
现在我需要检查泛型类型,以知道哪个类作为参数发送

func getRepository<ModelType: Model>() {
   if (typeof(ModelType) == User.self) {
       // Do something specific to User
   } else {
       .....
   }
}
但是我不知道如何获得泛型类型的类

非常感谢你的回答

干杯

这个怎么样?我不确定它是否有效,但想法是获取字符串中的类名,然后比较它们:

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


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

您打算如何调用该函数?除非您将参数传递给getRepository,否则编译器无法推断ModelType的类型,除非它是某种模型。如果您尝试调用getRepository,并将其定义为这样,即使其中没有任何内容,也会出现编译错误。我猜你真的想要这样的东西:func getRepositorymodel:ModelType?@JoachimIsaksson我想把它叫做getRepository@MikeSgetRepositorymodel:ModelType看起来很难看,你不觉得吗?我应该能够以某种方式获得泛型类型,就像CThanks@bluesmith!这对我来说似乎是个解决办法。