将类作为参数传递到函数中,该函数在swift中返回此类型的对象?
我需要这样写:将类作为参数传递到函数中,该函数在swift中返回此类型的对象?,swift,class,instantiation,func,function-parameter,Swift,Class,Instantiation,Func,Function Parameter,我需要这样写: func createInstanceOfClass(someClass: Class) -> UIViewController { var vc = someClass() //some initialization ... // return } 我发现了一些类似的问题,但其中有些问题不适合此任务,有些问题关于paramT,这似乎是多余的。下面是一个示例,说明如何执行此操作。使用T.Type引用T的元类型,使用T.self引用类型T prot
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)
protocoldefaultconstructible{
init()
}
A类:默认可构造{
必需的init(){}
}
结构B:DefaultConstructible{
init(){}
}
func生成一个实例(c:T.Type)->T{
返回c.init()
}
让a=做出一个立场(关于:a.自我)
让b=表示立场(关于:b.自我)
以下是一个示例,说明了如何执行此操作。使用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)
protocoldefaultconstructible{
init()
}
A类:默认可构造{
必需的init(){}
}
结构B:DefaultConstructible{
init(){}
}
func生成一个实例(c:T.Type)->T{
返回c.init()
}
让a=做出一个立场(关于:a.自我)
让b=表示立场(关于:b.自我)
您的函数正在返回ViewController。那是什么?固定密码。简单地说,在我的特殊情况下,这个方法根据给定的视图控制器的类创建并初始化视图控制器。您需要的是一个通用函数,这就是为什么您找到的答案使用T
参数的原因。我建议您阅读Swift中的泛型,然后再看看您找到的答案。您的函数将返回ViewController。那是什么?固定密码。简单地说,在我的特殊情况下,这个方法根据给定的视图控制器的类创建并初始化视图控制器。您需要的是一个通用函数,这就是为什么您找到的答案使用T
参数的原因。我建议阅读Swift中关于泛型的内容,然后再看看你找到的答案。