swift - 如何在 SwiftUI 中将对象属性作为参数传递?
问题描述
我知道以下在 Javascript 中是可能的。我可以在 SwiftUI 中使用类似的东西将对象属性作为字符串传递吗?
var a = { foo: 123 };
a.foo // 123
a['foo'] // 123
var str = 'foo';
a[str] // 123
解决方案
您可能想要的是一条关键路径。例如,给定:
struct A {
var foo: Int
}
您可以构造一个A
, 并访问它:
let a = A(foo: 123)
a.foo // 123
鉴于此,您可以foo
通过键路径访问该属性:
let kp = \A.foo
a[keyPath: kp] // 123
如果您的实际目标是将字符串映射到整数,那只是 a [String: Int]
,它的工作原理相同。如果您的意思是“我想将字符串传递给对象,但发生了相当随机的事情,并且可能像在 JavaScript 中那样崩溃”,那么使用自定义下标(如subscript(key: String) -> Int?
.
推荐阅读
- reactjs - IE11 中的 Debounce '对象不支持此操作'
- security - 如何在 Ignite 日志中禁用打印用户数据
- apigee - PreFlow 策略中的条件
- c++ - Libfreenect:为什么深度回调函数不执行?
- python - 如何使用 futures = session.get(url, headers=header for headers1) 对挂起的标头项目运行重试
- json - 将过程的结果(集)反转为 json 格式
- swift - 快速查找特定位置的视图
- python - pycryptodome:对象类型
无法传递给 C 代码 - 虚拟环境 - python - 在查找 Sigmoid 函数的导数时出现错误(numpy.ndarray 不可调用)
- delphi - Delphi Tchart在打印时未显示图例中的所有项目