美文网首页程序员手机移动程序开发
关于swift中通过字符串创建类的坑

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

作者: RainyHand | 来源:发表于2016-12-29 10:36 被阅读216次

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

    1. NSClassFromString的返回值是AnyClass 类型在书写的时候要标记为可选。
      2.OC中可以直接通过类名字符串创建类,但是swift中需要完整的命名空间,获取完整命名空间的方法
      let clsName = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String
      3.然后将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


    self图片.png

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

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

    相关文章

      网友评论

        本文标题:关于swift中通过字符串创建类的坑

        本文链接:https://www.haomeiwen.com/subject/shiuvttx.html