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)")
        
    }

你可能感兴趣的:(Swift(三): 函数封装--根据字符串创建对应的对象)