我很快就被这个问题卡住了。假设我有一个对象,如何在 swift 中检查它是来自结构还是类。
最佳答案
在 Swift 3.0 中,您可以调用 Mirror(reflecting:x).displayStyle
,其中 x
是您感兴趣的值。结果将是 class
、struct
、enum
、dictionary
、set
.. . 查看文档 https://developer.apple.com/reference/swift/mirror.displaystyle
代码示例:
struct SomeStruct {
var name: String
init(name: String) {
self.name = name
}
}
var astruct = SomeStruct(name:"myname")
Mirror(reflecting:astruct).displayStyle == .struct // will be true
Mirror(reflecting:astruct).displayStyle == .class; // will be false
class MyClass {
var name:String
init(name: String) {
self.name=name
}
}
var aclass = MyClass(name:"fsdfd")
Mirror(reflecting:aclass).displayStyle == .struct // will be false
Mirror(reflecting:aclass).displayStyle == .class // will be true
当然,在实践中最好使用 switch-case 语句来处理。
关于ios - 如何快速检查对象属于类或结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31849291/