2017-09-29 2 views
2

私は、のようなSwiftでは、すべての** static **プロパティを構造体から取得できますか?

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を取得しても、子どもがいなくなります。

関連する問題