我很快陷入了这个问题.假设我有一个对象,如何在
swift中检查它是来自struct还是class.
解决方法
在
Swift 3.0中,您可以调用Mirror(反射:x).displayStyle,其中x是您感兴趣的值.结果将是class,struct,enum,dictionary,set …请参阅文档
@L_403_2@
代码示例:
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语句来处理.