有没有办法以字符串形式获取 Swift 类型名称及其命名空间(或框架名称)?
例如,如果 Foo.framework
有一个名为 Bar
的类,我想得到一个类似 "Foo.Bar"
的字符串>.
以下代码仅返回类名“Bar”
。
let barName1 = String(Bar.self) // returns "Bar"
let barName2 = "\(Bar.self)" // returns "Bar"
let barName3 = "\(Bar().dynamicType)" // returns "Bar"
我还想将框架名称“Foo”
作为命名空间。
最佳答案
struct Bar { }
let barName = String(reflecting: Bar.self)
print(barName) // <Module>.Bar
Type names and enum cases now print and convert to String without qualification by default.
debugPrint
orString(reflecting:)
can still be used to get fully qualified names.
关于ios - 如何获取带有命名空间(或框架名称)的字符串形式的 Swift 类型名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57368896/