关于swift中通过字符串创建类的坑

2016-12-30 02:39

在swift开发中,也是通过用字符串创建类也是通过NSClassFromString函数进行的。

  1. NSClassFromString的返回值是AnyClass 类型在书写的时候要标记为可选。2.OC中可以直接通过类名字符串创建类,但是swift中需要完整的命名空间,获取完整命名空间的方法let clsName = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String3.然后将Anyclass类型转变为指定类型4.创建对象具体步骤代码如下// 1.获取命名空间 let clsName = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String// 2.通过命名空间和类名转换成类 let cls:AnyClass? = NSClassFromString(clsName + "." + childControllerName)//3将anyClass转变为指定类型 let vcType = cls as! UIViewController.Type//4通过VCClas创建对象 let vc = vcType.init()

注意!!! 当你的工程名字中含有“-” 例如swift-sina时用上述方法创建的类,返回值是nil,通过打印可以看到self

关于swift中通过字符串创建类的坑0
self图片.png

只能自己书写 将“-”换成“_”.

----------swift继续填坑--------