有可能在 swift 中知道结构的名称吗?我知道这对于 class
是可能的:
示例
class Example {
var variable1 = "one"
var variable2 = "2"
}
打印这个类名,我会简单地做:
NSStringFromClass(Example).componentsSeparatedByString(".").last!
但是我可以为 struct
做类似的事情吗?
示例
如果我有一个struct
:
struct structExample {
var variable1 = "one"
var variable2 = "2"
}
如何获取此struct
的名称"structExample"?
谢谢。
最佳答案
如果您需要非实例化结构的名称,您可以询问它的self
:
struct StructExample {
var variable1 = "one"
var variable2 = "2"
}
print(StructExample.self) // prints "StructExample"
例如,我会使用 CustomStringConvertible 和 dynamicType:
struct StructExample: CustomStringConvertible {
var variable1 = "one"
var variable2 = "2"
var description: String {
return "\(self.dynamicType)"
}
}
print(StructExample()) // prints "StructExample"
关于 Swift 3,对于此处的示例,self.dynamicType
已重命名为 type(of: self)
。
关于swift - 快速打印结构名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35088970/