Swift(三): 函数封装--根据字符串创建对应的对象

/**
     根据字符串创建对应的对象
     
     - parameter VCName: 类名称的字符串
     */
    func createVCObjectFromString(VCName:String) {
        
        //获取命名空间
        guard let nameSpace = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as? String else{
            print("命名空间获取失败")
            return
        }
        print("命名空间:\(nameSpace)")
        
        
        //获取 Class 的可选类型
        guard let className = NSClassFromString(nameSpace + "." + VCName) else {
            print("className获取失败")
            return
        }
        print("className:\(className)")
        
        
        //转成控制器类型
        guard let classType = className as? UIViewController.Type else{
            print("类型转换失败")
         return
        }
        print("控制器类型:\(classType)")
        
        
        //创建对应的类型的控制器
        let VCObject = classType.init()
        print("最后创建的对象:\(VCObject)")
        
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容