swift - 将类作为参数传递给快速返回此类对象的函数?

标签 swift class instantiation func function-parameter

我需要写这样的东西:

func createInstanceOfClass(someClass: Class) -> UIViewController {
  var vc = someClass()

  //some initialization
  ...
  //

  return 
}

我发现了一些类似的问题,但其中一些不适合这个任务,一些关于 param T 的问题似乎是额外的。

最佳答案

这是您如何执行此操作的示例。使用T.Type 来引用T 的元类型,使用T.self 来引用类型T

protocol DefaultConstructible {
    init()
}

class A: DefaultConstructible {
    required init() {}
}

struct B: DefaultConstructible {
    init() {}
}

func makeAnInstance<T: DefaultConstructible>(of c: T.Type) -> T {
    return c.init()
}

let a = makeAnInstance(of: A.self)
let b = makeAnInstance(of: B.self)

关于swift - 将类作为参数传递给快速返回此类对象的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43186223/

相关文章:

linux - libstdc++.so.6 : version `GLIBCXX_3.4.21' not found error

swift - 如何在 Swift 中恢复堆栈跟踪?

C++ - 关于函数模板实例化的规则

c++ - 如何调用模板函数的每个实例化函数?

java - 没有封闭类型的实例...在范围内

ios - let skView = view as 有什么用! SKView

ios - 请帮助。无法转换类型的值

class - 默认情况下是一个类 public、private 或 internal

jquery - 根据星期几添加类(class)

java - 如何在 Java 中从 ArrayList 中绘制对象