-1

下面有一个代码:

let cls = NSClassFromString("UIView") as? UIView.Type

我想将此代码提取为一个函数

func ClassFromString(_ className: String, _ classType: AnyClass) -> AnyClass?{
   return NSClassFromString("UIView") as? classType   // it is error
}

但它不工作。怎么做?

4

2 回答 2

0

试试这个:

func getClassFromString<T>(_ cName: String, cType: T) -> T.Type {
    return NSClassFromString(cName) as? T.self
}
于 2019-04-10T09:22:38.277 回答
0

您可以像这样创建一个通用函数

func classFromString<T>(_ className: String, _ classType: T) -> T? {
    return NSClassFromString(className) as? T
}

并按如下方式使用

if let cls = classFromString("UIView", UIView.self) {
   let view = cls.init()
}
于 2019-04-10T09:24:02.900 回答