首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取对象的所有KeyPaths

获取对象的所有KeyPaths
EN

Stack Overflow用户
提问于 2021-03-01 09:38:32
回答 1查看 91关注 0票数 0

在Swift 5中有没有一种方法可以迭代所有的keypath?我知道Mirror将为您提供键的字符串表示,但我不能使用setValue,因为我的对象不是从NSObject继承的,并且有几个值与@objc不兼容。我正在尝试做类似下面这样的事情(伪编码):

代码语言:javascript
复制
func overwrite(source:T, overwrite:T) {
  for keypath in overwrite.allKeypaths() {
    source[keyPath: keyPath] = overwrite[keyPath: keyPath]
  }
}

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-07 23:21:35

这在Swift中是不可能的。没有办法获得给定对象上的所有keypaths。但是,您可以使用Mirror查看对象的所有属性,以获得objective-c对象的字符串表示。然而,并不是所有的值类型都可以使用setValue以这种方式设置,因为并不是所有的Swift类型都转换为objective-c。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66415613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档