将 class 作为参数传递给函数 returns swift 中的此类对象?
Pass class as param into function which returns an object of this type in swift?
我需要这样写:
func createInstanceOfClass(someClass: Class) -> UIViewController {
var vc = someClass()
//some initialization
...
//
return
}
我发现了一些类似的问题,但其中一些不适合这个任务,一些关于参数 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)
我需要这样写:
func createInstanceOfClass(someClass: Class) -> UIViewController {
var vc = someClass()
//some initialization
...
//
return
}
我发现了一些类似的问题,但其中一些不适合这个任务,一些关于参数 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)