swift - 快速打印结构名称

标签 swift struct

有可能在 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/

相关文章:

ios - 如何突出显示 UITextField 内的部分文本?

ios - 从 Xib 加载 View 在自动布局后调整框架 subview 的大小

c - 外部结构和多个 header

c++ - 当我们在两个结构上使用 = 运算符时,它会做什么?

ios - Swift - 强制从库和相机中获取方形照片

ios - 如何更改 iOS 11 中的导航栏高度?

c++ - 序列化一个定义未知的结构

c - `struct point makepoint(int,int)`是什么意思?

c - 抽象结构体数组

ios - Swift Progress View 值传递函数