swift的类名完整表达为 命名空间(一般为工程名)+类名
因此若要通过字符串转换为对应的类型,可以分为以下几步
1.获取类名
let clsName = "MyClass"
2.获取命名空间
let nameSpage = Bundle.main.infoDictionary!["CFBundleExecutable"]
3.将命名空间与类名通过“.”链接
let childVcClass = NSClassFromString((nameSpage as! String) + "." + clsName)
4.将完整的类名指定为自己需要的类型
guard let childVcType = childVcClass as? UIViewController.Type else {
print("没有得到的类型")
return
}
5.使用得到的类型去创建对象
let vc = childVcType.init();