Tac*_*aco 9 generics metaprogramming metaclass ios swift
为了在日志文件中存储类名,我将类类型的描述转换为字符串:
let objectType: NSObject.Type = Object.self
let str = String(describing: objectType)
Run Code Online (Sandbox Code Playgroud)
但是,我没有成功地将其转换str为类型变量NSObject.Type以在泛型方法中使用它.
我怎么能这样做?
您可以从 中取回您的类string,但是在获取类名时需要使用项目的模块名。如果您不使用您的模块名称,那么它将返回,nil因为您之前引用的类名称不是由模块名称完全限定的。您应该更改类名字符串以表示您的类的完全限定名称:
let myClassString = String(MyModule.MyViewController.self)
print(myClassString)
let myClass = NSClassFromString("MyModule.\(myClassString)") as! MyViewController.Type
print(myClass)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5546 次 |
| 最近记录: |