ios – 如何在swift中检查对象属于类或结构体

前端之家收集整理的这篇文章主要介绍了ios – 如何在swift中检查对象属于类或结构体前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我很快陷入了这个问题.假设我有一个对象,如何在 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语句来处理.

原文链接:https://www.f2er.com/iOS/334332.html

猜你在找的iOS相关文章