我正在尝试获取结构上所有属性的列表。
我使用了这个代码:
struct MyBanana {
var b: String?
}
Mirror(reflecting: MyBanana.self).children.isEmpty // returns true
Run Code Online (Sandbox Code Playgroud)
为什么我的.children收藏是空的?
我需要能够从类型而不是实例中获取这些。
我需要能够从类型而不是实例中获取这些。
你不能。斯威夫特的反思故事尚未充实。反射所需的运行时元数据在 Swift 中已经存在很长时间了。Xcode、LLVM 调试器和 Instruments 严重依赖它,但它的更改过于频繁,以至于无法在其上构建 API。
既然 ABI 稳定性已经建立,我预计反思将很快得到解决。在那之前,您可以使用多个第三方反射库。他们的作者对运行时元数据进行了逆向工程,并在其上构建了一个 API。您只需确保该库自 Swift 5 以来已更新。
| 归档时间: |
|
| 查看次数: |
641 次 |
| 最近记录: |