我很快陷入了这个问题.假设我有一个对象,如何在
swift中检查它是来自struct还是class.
解决方法
在
Swift 3.0中,您可以调用Mirror(反射: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语句来处理.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。