先看个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 */