美文网首页Swift学习ios专题
NSClassFromString()取出Class为nil

NSClassFromString()取出Class为nil

作者: 嗜糖63 | 来源:发表于2016-03-22 21:08 被阅读592次

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,其他如中文数字等没有尝试状况的没有尝试,先记下来。

相关文章

网友评论

  • Colin_狂奔的蚂蚁:
    2
    3
    let className: String = "SampleViewController"
    let classes: Dictionary<String, ()->UIViewController> = [className : { return SampleViewController() }]
    let viewController = classes[className]!()
    这个也还是不错的方式

本文标题:NSClassFromString()取出Class为nil

本文链接:https://www.haomeiwen.com/subject/xmjllttx.html