2017-09-29 57 views
2

我有一个结构与协议一样,在Swift中,是否有可能从结构中获得所有**静态**属性?

protocol Page { 
    func getAllProperties() -> [String: Any] 
} 

extension Page { 
    public func getAllProperties() -> [String: Any] { 
     var result: [String: Any] = [:] 
     let mirror = Mirror(reflecting: self) 
     print(mirror) 
     for (labelMaybe, valueMaybe) in mirror.children { 
      print(labelMaybe) 
      guard let label = labelMaybe else { 
       continue 
      } 

      result[label] = valueMaybe 
     } 

     return result 
    } 

} 


struct Test: Page { 
    static let aa = "aaaaa" 
    let bb = "bbbb" 
} 

这里Test().getAllProperties()只返回bb,它忽略了static财产!

我想getAllProperties()也返回那些静态属性!

有没有办法呢?

回答

1

据我所知,答案是否定的。抱歉。即使在type(of: self)上获得Mirror也不会有任何孩子。

相关问题