Swift 字符串转化为Class的方法

  在开发中有时候会根据字符串进行对应类的转化,这样我们就可以动态根据服务器返回的字段,动态的加载类,比如优酷,微博等APP会在节假日等动态的TabBar。这样可以把苹果审核的风险给排出。

  在OC中根据一段字符串转化为类,可以很方便的进行,只需要使用NSClassFromString
即可NSClassFromString(@"NewsViewController")

  但是在Swift中由于命名空间的存在导致这样的转化,会有一定的麻烦,我们可以用下面的方法进行转化。

func getClass(stringName: String) -> Class {
    //根据字符串获取对应的class,在Swift中不能直接使用
    
    //Swift中命名空间的概念
    guard let nameSpage = Bundle.main.infoDictionary!["CFBundleExecutable"] as? String else {
        print("没有命名空间")
        return
    }
    
    guard let childVcClass = NSClassFromString(nameSpage + "." + vcName) else {
        print("没有获取到对应的class")
        return
    }
    
    guard let childVcType = childVcClass as? UIViewController.Type else {
        print("没有得到的类型")
        return
    }
    
    //根据类型创建对应的对象
    let vc = childVcType.init()
    
    return vc
    
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,229评论 4 61
  • 第一次画水彩 还不太了解笔法 第二次 笔法有所进步 但是石头处理的太过细 第三次 整体感觉不错 但墨线稿处理时间过...
    我就是我的王阅读 232评论 1 1
  • 【论语心得046】节奏把控。 【原文1】子语鲁大师乐,曰:“乐其可知也:始作,翕如也;从之,纯如也,皦如也,绎如也...
    国学应用讲习所阅读 189评论 0 0
  • 本文介绍基于Linux操作系统的网络性能分析工具。 如下表所示: netstat 基于使用的选项,netstat(...
    和奇谷朴阅读 1,213评论 0 4
  • 世界是相对的,生存法则告诉我们,要学会适应不同的环境。对公司来说,每个发展阶段,都会有不同的制度,要选择与实际...
    潍坊泰华DDM店刘云阅读 129评论 0 0