2019独角兽企业重金招聘Python工程师标准>>>
先看个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
*/