swift学习:NSClassFromString
@(NSClassFromString)[swift]
NSClassFromString的作用是通过类名称获取类类型,objective-c和swift中都支持此用法,但在swift中稍有不同:
- objective-c :直接传入 类名 字符串 即可;
objective-c
...
Class controllerClass = NSClassFromString(aControllerName);
...
swift :分两种情况,如果是系统 类名称 用法 同 objective-c,如果是项目自定义类,此时需要传入 项目 执行文件名称+类名组合字符串;
... // 系统内部类 let StringClass = NSClassFromString("NSString"); // 自定义类 let info = Bundle.main.infoDictionary; let appName:String = info?[kcfBundleExecutableKey as! String] as! String; let classType: UIViewController.Type; var viewController: UIViewController? = nil; if let classType = NSClassFromString(appName+"."+aClassName) ...