下面有一个代码:
let cls = NSClassFromString("UIView") as? UIView.Type
我想将此代码提取为一个函数:
func ClassFromString(_ className: String, _ classType: AnyClass) -> AnyClass?{
return NSClassFromString("UIView") as? classType // it is error
}
但它不工作。怎么做?
试试这个:
func getClassFromString<T>(_ cName: String, cType: T) -> T.Type {
return NSClassFromString(cName) as? T.self
}
您可以像这样创建一个通用函数
func classFromString<T>(_ className: String, _ classType: T) -> T? {
return NSClassFromString(className) as? T
}
并按如下方式使用
if let cls = classFromString("UIView", UIView.self) {
let view = cls.init()
}