gpt4 book ai didi

swift - 如何获取结构类型的值?

转载 作者:行者123 更新时间:2023-11-28 13:24:28 24 4
gpt4 key购买 nike

如何通过字符串获取结构类型的值?

func getField(action: myStruct, field:String) {
labelAmount.text = action[field]
}

这是我的结构:

struct myStruct {
var id: Int
var name: String
.
.
//many fields
}

我收到这个错误:

Value of type 'myStruct' has no subscripts

最佳答案

就像评论中已经提到的那样,您可以为此使用反射

func getField(action: myStruct, field:String) {
let actionMirror = Mirror(reflecting: action)
if let value = actionMirror.children.first(where: {$0.label == field}).map( {$0.value}) {
labelAmount.text = String(describing: value)
}
}

评论中建议的另一种解决方案是使用 KeyPath

func getField<T>(action: myStruct, path: KeyPath<myStruct, T>) {
labelAmount.text = String(describing: action[keyPath: path])
}

关于swift - 如何获取结构类型的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58630230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com