为了将类名存储在日志文件中,我将类类型的描述转换为字符串:
let objectType: NSObject.Type = Object.self let str = String(describing: objectType)
但是,我没有成功将其反向转换str为类型的变量NSObject.Type以在通用方法中使用它。
str
NSObject.Type
我该怎么办?
您可以从返回类string,但是获取类名时需要使用项目的 模块 名。如果不使用模块名称,则它将返回,nil因为先前引用的类名称尚未完全由 模块名称 限定。您应该更改类名称字符串以表示您的类的完全限定名称:
string
nil
let myClassString = String(MyModule.MyViewController.self) print(myClassString) let myClass = NSClassFromString("MyModule.\(myClassString)") as! MyViewController.Type print(myClass)