问题描述
Swift 5 有没有办法遍历所有键路径?我知道 Mirror
会给你键的字符串表示,但我不能使用 setValue
因为我的对象不是从 NSObject
继承的,而且几个值不是 {{1} } 兼容的。我正在尝试执行以下操作(伪编码):
@objc
这里的最终目标是首先在现有对象中创建一个浅拷贝,并可能将其扩展为包含基于值类型的深拷贝。
解决方法
这在 Swift 中是不可能的。无法获取给定对象上的所有键路径。但是,您可以使用 Mirror
查看对象的所有属性以获取 Objective-c 对象的字符串表示。但是,并非所有值类型都可以通过这种方式使用 setValue
设置,因为并非所有 Swift 类型都转换为 Objective-c。