Swift下需要用
let tempns = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as! String
动态获取命名空间,然后用NSClassFromString()的方法获取类型。
例如名为MyClass
的类型,我获取类对象时一般用以下方法
let appName = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as! String
let anyClass: AnyClass = NSClassFromString(appName + "." + "MyClass")
let myObj: AnyObject = (anyClass as! NSObject.Type).init()
但是,之所以要记下来就是因为这个但是。
我习惯在练习用的工程名后加-Test
后缀,但在NSClassFromString()
方法内-
要用_
替换才可以正确获取Class
,否则为nil
,其他如中文数字等没有尝试状况的没有尝试,先记下来。