获取对象的所有 KeyPath

问题描述

Swift 5 有没有办法遍历所有键路径?我知道 Mirror 会给你键的字符串表示,但我不能使用 setValue 因为我的对象不是从 NSObject 继承的,而且几个值不是 {{1} } 兼容的。我正在尝试执行以下操作(伪编码):

@objc

这里的最终目标是首先在现有对象中创建一个浅拷贝,并可能将其扩展为包含基于值类型的深拷贝。

解决方法

这在 Swift 中是不可能的。无法获取给定对象上的所有键路径。但是,您可以使用 Mirror 查看对象的所有属性以获取 Objective-c 对象的字符串表示。但是,并非所有值类型都可以通过这种方式使用 setValue 设置,因为并非所有 Swift 类型都转换为 Objective-c。