swift 字符串创建类

前端之家收集整理的这篇文章主要介绍了swift 字符串创建类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

先看个OC的

Class someClass = NSClassFromString(@"SomeClassName");
id obj = [[someClass alloc] init];

swift

guard let name =  NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as? String else
        {
            print("获取命名空间失败")
            return
        }
        //Swift中如果想通过类名来创建一个类必须加上命名空间
        let cls: AnyClass? = NSClassFromString(name + "." + childControllerName)
        
        //Swift中如果想通过一个Class来创建一个对象,必须告诉系统这个Class的确切类型
        guard let typeCls = cls as? UITableViewController.Type else
        {
            print("cls不能当做UITableViewController")
            return
        }
        
        let childController = typeCls.init()
        /* 
         1:guard 如果没有就会执行 必须return
         2:AnyObject时需用到as
         */

猜你在找的Swift相关文章