最近复习Swift使用NSClassFromString转类的时候总是得到nil,记录一下,正确代码如下:
static func classTypeFromString(className: String?) -> AnyClass? {
guard className != nil || className!.count > 0 else { return nil }
var name = Bundle.main.infoDictionary!["CFBundleName"] as! String
name = name.replacingOccurrences(of: "-", with: "_")
let fullClassName = name + "." + className!
return NSClassFromString(fullClassName)
}
注意:我一开始因为是建了个测试项目名字中包含有 "." 一开始没注意然后NSClassFromString一直是nil,即使是上面的代码也是nil,后来改掉包名后正常了,记录一下。