swift 根据字符串创建类

大神们,打扰一下,swift 根据字符串创建类
最新回答
远山浅

2021-07-28 18:58:16

根据后台的返回字段,创建不同的类,以满足动态界面的展示需求
分2种情况,一种是由后端穿字符串,转换原生类,一种是本地类 通用化转换

目前转换类有2个方法 classForCoder()和NSClassFromString()
第一种转换,自带命名空间,第二个单纯的类名

1、获取命名空间-CFBundleExecutable这个键对应的值就是项目名称,也就是命名空间

let nameSpace = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String

2、转化:
let classType:AnyClass? = NSClassFromString(nameSpace + "." + className)

如果是classForCoder()不需要以上操作

3、通过类创建对象 将anyClass转换为指定的类型
let viewController = classType as! UIViewController.Type

4、通过class创建对象
let vc = viewController.init()

至此完成